Seriously? Every one of the DJI products can do this out of the box using just GPS/accel/gyro/barometer. Newer ones can do it even better by adding in a camera pointing at the ground that works like an optical mouse. Some really insane stuff can be done if you throw an active positioning system into the mix: http://www.ted.com/talks/raffaello_d_andrea_the_astounding_a...
With a GPS and barometer thrown in, position hold should be pretty close to a still hover unless there is significant wind or unresolved problems with the power train
Elevation can be determined by GPS, but a barometer works better.
I would think a barometer would work far better. GPS is not the best for vertical accuracy.
Keep in mind for either method you also have an accelerometer, so even if GPS (or a crummy baro) provides a messy signal for altitude you can average it over a given timespan and compare that against how quickly you are accelerating upwards or downwards.
But I just spent a few minutes reading some about quadcopters vs even helicopters and from what I have read everyone so far seems in agreement that the quadcopters are less stable and less efficient then a helicopter design. It is the software stabilization that makes flight even possible, but even then they aren't very stable.
I had always wondered about this, as I have seen model helicopters (and full sized) maintain a level hover for significant time periods, but I can't ever recall a nearly still level hover from a quadcopter. From reading it sounds like that is tough to achieve given that they are constantly adjusting power to each of 4 motors to maintain flight and without the ability to change pitch of the blades that is the only option. So while mechanically easier to build they aren't necessarily more stable.