The longer it takes the less I believe it's really just a software bug. The only thing that realistically takes months to 'fix', is trying to come up with better error-correction algorithms and other trickery to compensate for a faulty hardware design.
Sadly, I expect you are correct. All these tales of 'mine works fine' and 'mine doesn't' or 'it worked on Monday, didn't Tuesday' suggest a hardware design and/or manufacturing tolerance issue. The low and wildly changing SNR values suggest that it's due to noise coming from the other internal gubbins on the device itself.
It's actually not very surprising that different users, or even the same one in different locations, see widely varying results. GPS is VERY sensitive to local electronic noise and power management on mobile phones is very sophisticated indeed. The farther you are from a mobile phone base station the higher the power the device needs to transmit signals at to maintain contact, so power consumption and likely system electronic 'noise' varies all the time. Add that to variable processor loads and speeds on a modern mobile phone and it's pretty difficult to do an 'apples for apples' comparison between users with different firmware/apps/settings running in different locations. Heck it's even difficult with exactly the same ones.
The basic problem I suspect is one of hardware design and manufacturing tolerances. Design it too close to the edge to begin with and those little tolerances on each component, distance from base-station, processor load affecting power rail noise etc etc all add up and either it works...or it doesn't.. even though it's ostensibly the 'same phone'.


