Any decent smartphone can already get a GPS fix in a second or so.
The main bottleneck to a GPS fix these days is simply downloading the satellite positions. This is done over a 1970s-era protocol that operates at 50bps and takes about 30 seconds to transmit all of the data.
Smartphones bypass this by downloading the positions over their local data connection, which cuts that down to a fraction of a second.
Fixing your altitude to +/- 2000ft doesn't really help the process to any significant degree. If you have the satellite positions or can get them quickly, the rest comes fast. If you don't, you're doomed to be slow.
Yeah, that doesn't make any sense. Barometers are only good for detecting relative altitude/elevation changes over short periods of time.
Over longer periods of time (hours/days) the atmosphere pressure is going to change whether you change altitude or not. Over short periods, the barometer can give a relative change. Without a known starting point, it can't give you absolute altitude/elevation.
It has nothing to do with getting a gps lock.
I'd be pretty surprised if the phones didn't pull down the satellite constellation data over the network vs waiting on the nav message broadcast from the satellites.
I have some MPX5100 pressure sensors connected up to an Arduino. When I first experimented with them, I was shocked to find that they were accurate enough to report pressure change simply from lifting the device off my desk and up to eye level.
Not that this says anything about the sensor used in the iPhone, but it's not unreasonable to expect that it could be used as some form of motion input.