The air traffic controllers represent a significant problem. The original union (since busted by Reagan) had an incentive to reduce work and increase pay, so they established conservative air separation rules, frequently made them even more conservative, and had regular slow-works. The union had an obvious incentive to fight against automation, too. (The current union isn't quite as bad. The incentives are the same, though.)
The USGOV has no obvious incentive to make the skies better. When flights go bad the people rail against the airlines, not the Feds. They also have the incentive to poorly fund the ATC system and use the money on other things that will give them more visible wins.
The airlines would like to upgrade their fleet but that's useless without ATC systems that can handle the new tech (like GPS). UPS finally bit the bullet and upgraded its planes and then paid for its main airport (in Kentucky) to be upgraded. I believe FedEx did the same (but in Tennessee).
A for-profit ATC system that was funded by mandated-minimum contributions from both general aviation and the airlines (both are already dinged to partially pay for the current ATC) would align the incentives properly. The airlines would be able to get more planes in the sky, packed tighter, and in more lanes. As new technology became available, they would use it. People would have much better flight experiences with fewer delays. USGOV would get to stop funding obsolete programs. And above all, the ATC company would have its incentives aligned with both the airlines and the people, since they'd get paid more if more flights were on time, etc. And the contract could be re-bid out every few years to ensure that the ATC firm doesn't let complacency reign.