Verizon and AT&T do just as badly, but not nearly as much (~8Mbps). Again, congestion, not because there are no towers nearby. I am on business postpaid higher tier plans, and should have tower priority according to them.
Sprint coverage disappears completely a few minutes after exiting major cities.
AT&T has a disgusting transparent proxy that breaks SSL half the time (if you try to negotiate purely-modern ciphers, your SSL connects typically fail) and modifies random files/headers in transit if plaintext. They do not/will not remove it. Plaintext HTTP exits through one IP (shared by an insane amount of people, seemingly), and all other traffic that it can't tamper with or doesn't know how to tamper with exits via another IP. This breaks some things.
Incidentally, I am typing this on a hotspot, and as my bus enters downtown CBD loading web pages (including HN, the lightest page of them all) ha started to take 10-30 seconds.
I've used a cheap ($30/mo) prepaid plan on TMo for the past several years and it's only gotten better in my city. Just ran speed tests on 3 different sites from my office (with passable signal strength but not "full bars" and without checking actual numbers).
All three claimed 24-25Mbps download and 5-8Mbps upload with 65-75ms latency. This is more than enough for my cell phone, but I'd imagine any drops or latency would be a lot more noticeable if I was tethered to a laptop.
I guess for me, the main uses of cellular data are web browsing and media streaming when I'm not at home or at the office (when I'd be on WiFi instead). This is plenty for me and I even get coverage outside of the city these days. 5 years ago I might not have said the same.