As I mentioned in the comments, you're looking at the wrong aspect of armor. You shouldn't be looking at the percentage it reduces, but rather the amount of damage it actually prevents as a measure of how much longer that armor lets your survive.
Let's consider an example for a champion with 0 armor. Say he has 1000 health, just 'cause that's a nice round number. Now our champion gets caught in Garen's judgement, and starts taking 100 physical damage each second (at one hit per second). Clearly, our protagonist can take ten hits before dying.
But now, imagine our champion has the 50 armor you mention, meaning the incoming physical damage is reduced. Now (still with 1000 health) it takes 15 seconds for that bastard Garen to claim our champion's life. 50 armor extended our life by 5 seconds. (100 * (2/3) = 66.6 DPS; 1000 / 66.66... = 15 hits)
So our champion respawns, wises up, and buys 50 more armor. Now with 100 armor, we're sitting at a flat 50% damage reduction. Again we run into Garen, who's still dealing 100 base damage per second. It now takes him twice as long to kill us -- 20 seconds. Once again the armor has extended our life, again by 5 seconds. (100 * .5 = 50 DPS; 1000 / 50 = 20 hits)
Back in base, we buy another 50 armor. We're now at 150 armor, and 60% damage reduction. Enter Garen -- spinspinspinspinspinspin and it takes 25 seconds before our champion dies. Again, adding 50 armor extended our life by 5 seconds. (100 * .4 = 40 DPS; 1000 / 40 = 25 hits)
So even while the amount of damage reduced per point of armor diminishes (as you observed), the amount of time armor extends your life (or effective health) remains distinctly linear.
Shields act as health - which means that they have the same damage resistances as the character they were used on. This means that, for instance, a 1000 hitpoint shield will only give 1000 points of absorbed damage on a champion with 0 armor and MR. Usually, it's a fair bit more than this.
The thing is, in League of Legends, it's much easier to increase offense than defense. Carries are focus targets to begin with, so even a 1000 point shield goes down fast under 3-4 different champions attacking it. Most endgame carries can crit each other for over 600, easily.
Ultimately, shields might go down fast, but you are effectively giving them temporary health, not a simple damage reduction.
Best Answer
In League of Legends, shields come as additional health. That is to say, your health is increased by the shield value. With regard to this remark, the order has no interest for the Hexdrinker. If your health + shield value drops below 30%, the Hexdrinker shield is cast.
As far as other cases are concerned, there seem to be multiple debates over the internet and the LoL forums. The most convincing answer I found is that shields are consumed in a "First Cast, First Depleted" (FCFD) order. As the shields stack (you can see that with the grey bar when multiple shields are on you), it would make sense to consume the first shield first to maximise the absorbed damage (as the second shield should last longer in term of duration). Nevertheless, it could happen that shield order and duration are not the same (Janna's shield followed by Blitzcrank's shield for example). In that case, it would be more effective to consume Janna's shield first, but there is no mention of another behaviour anywhere.
As a conclusion, "FCFD" order is the most probable answer, "earlier expiration depletes first" could be another approach but is less probable (harder to program). Finally "Last Cast, First Depleted" could be the third way to do it, but is also less probable due to the unoptimised behaviour that will then occur. Another remark, multiple casts of the Locket of the Iron Solari shield have a special rule (they do not stack and the effect is reduced).