I like this shield, but I need to draw 150mA continuous current and so I'm not suppose to draw more than 20mA from a pin, even on a shield.
The 20ma recommended max rating (yes 40ma is a absolute max rating, but you don't want to live there) is for the arduino defined digital output pins D0 to D13 not for all shield pins. The 5V pin can easily handle 150 ma current draw from it.
If 5V pin can handle that amount (150mA) continuously why am I being told that standard servos and this gas sensor I'm using need an external power source? It sounds like the 5V pin should be about to handle this current.
"A rough guideline for servo current draw is to allow 1A per standard size servo."
Simple, the 5V can only provide up to as much current as the power source for the board can provide. If you are using USB power from a PC then the total current capacity is 500ma for the boards requirement, plus any current flow out or in digital output pins, plus whatever you try to draw from the 5V pin. If your board is being powered from an external DC supply via the external power connector then your total +5vdc current capacity is either the current capacity of the external voltage source or the on-board +5vdc voltage regulator, which ever is less. In no case can your external circuitry draw more current then what whatever power source powering the board can provide. It's called 'no free lunch'.