At no point could one of the entities take complete control over the blockchain by themselves and they had to agree to switch lanes together by majority vote.
That is quite the rose-colored view of the situation. From my remembrance, it was the one or two major pools on the "correct" chain that had to be persuaded to move to the forked chain to preserve the network unity. In doing so they were giving up all of the blocks they had mined, so this was not a no-nonsense decision. The decision was in the hands of a couple of people--that is not the bastion of decentralization that you make it out to be.
As far as POS weaknesses go, I have recently posted a proposal (see sig) that I believe eliminates any of the remaining problems with POS. Stakes are actively managed - money that is staked cannot be used for any other purpose and is locked for a period of at least 1 year. This makes it much more difficult for exchanges and banks to stake. It also allows for easy penalization - create two blocks for the same time frame, your stake is destroyed.
The 1 year period is also in place to make it compact to implement a historic ledger that keeps track of the stakers all-time and can easily prevent the rewriting of history. Stakers must "sign out" of their stakes with a recent hash of network data to receive their stake back - this cannot possibly be duplicated in a rewritten history because the hashes will be incorrect. It then becomes obvious even to a new node following from the genesis block that only one network can be correct.
It's worth taking a look, if I may say so myself.