The whole problem could be solved if we gave people the choice of voting where they work rather than where they live.
Currently every city wants all the businesses that they can get because businesses generate lots of tax revenues. Cities do not want apartments because that doesn't generate revenue, and locals object on the basis of NIMBYism. But when everyone adds businesses and nobody adds homes, we get horrible commutes.
With my proposed change, housing developments in cities that have major businesses will get lots of support from people who work there and want shorter commutes. And it seems reasonable to me that someone who spends their waking hours in a city and wants to live there should get the opportunity to have political power there.
This would therefore undo the political log jam. And once you start letting people live close to where they work, commutes go down, traffic gets better, and everyone winds up happier.