theory time for the mystery of gps:
for us to getting the first gps location fix, there are 3 requirement need to be fulfill:
1. the time the message was sent
2. precise orbital information (the ephemeris)
3. the general system health and rough orbits of all GPS satellites (the almanac).
to simplyfy its meaning:
1. the time on ur devices and the time of the satelite
2. the satelite actual time data (need to keep the devices syn with the satelite)
3. the satelite orbits location at certain time (how many satelite will possible visible by the devices)
GPS fix steps:
1. during the cold gps device startup (devices reboot), the phone dont have all 3 data and it will try to scan through all 32 gps satelite signal signature (that's why an open space needed to let the phone detected as many satelite as possible)
2. the phone then will download all those available satelite signal and do calculation (no.2), this is where the a-gps come in handy where if u let it connect to our sp 3g then the phone will just send a msg to the sp 3g tower and request the (no. 2) data, where all those 3g tower will report it's location to the nokia/google supl server and download the rough location on the gps fix then the tower will send this (no. 2) data back to our phone.
3. if no a-gps then the phone will have to download those (no.2) data manually (mean very slow) and i can tell for those a few bytes satelite data will need to take about 10mins with the satelite signal strengh about full (mean if u open the garmin satelite status those bar need to hit about full bar) if the satelite signal strengh are lower (mean less then full bar) then the signal data accuiring will take up 15mins~30mins to be downloaded (same a few bytes data). for ~4kb we can get all 32 satelite (no.2) data.
4. once the (no.2) data downloaded the signal bar will turn to solid (a fix already capture) and the phone already can syn with the satelite.
5. remember all those satelite signal will need to collect 1 by 1 (although run at parellel) if no a-gps enable.
6. if got a-gps then ALL 32 satelite (no.2) data will be provide by the supl server (~4kb) and ur phone will able to lock every satelite that come in view.
those (no.2) data wont be delete as long as ur phone not reboot. and everytime u open the gps apps the same data will be use back and the phone only do minor calculation and can get the fix, this wont work out if u reopen after a few hours because the satelite previously lock already out of sigh (all satelite orbiting very fast)
so now u know where although we seen got a FULL BAR for the satelite strengh but still cant get a fast fix, it's because the satelite manual downloading through the gps chip are VERY SLOW (a few bytes will need ~10mins to be completed).
If u wanna try to test the theory, just do below steps to verify your gps chip power

DO NOT MOVE AROUND WHEN U DO THIS!!
1. shutdown ur phone
2. reboot the phone
3. go to an open space
4. disable the a-gps and network under the LOCATIONS apps
5. run ur garmin
6. go into the the satelite status view screen (in garmin)
7. start ur timer and observe those FULL BAR satelite (strong signal), at least 4 satelite needed for garmin to start calculating minimum requirement
8. wait till the bar turn to solid (anyone of it)
9. stop ur timer
i will sure u will get ~10mins

sometimes u lucky u might get a faster time that's because i'm not sure a reboot will 'confirmed" deleted the satelite cache (no.2) data or not. but for a cold start i can make sure u will able to lock the gps in ~10mins for a single satelite (the signal strengh must be high).
hope this able to clear some mist on the gps with/without a-gps