I believe transactions-as-proof-of-stake (the heaviest subtree model) is probably the best alternative to proof-of-work - and it isn't all that good.
Agreed. One issue is that it makes risk analysis difficult. This means the simplicity of wait for x confirmations and you are safe (unless attacker has a majority of the hashrate) no longer applies.
In the long run, it can provide an absolute security guarantee given enough time; Once more than half of all the coins in txouts that existed before a block was created have been spent, that block becomes absolutely irrevocable no matter what proof-of-work anybody pours on or what manipulations they do with spending and transactions.
One problem is that a large number of outputs have not ever been spend, and may not be spent for years or decades. So it could be some time before a block was absolutely irrevocable. The large amount of old unspent outputs create uncertainty. One variant would be to only include outputs which are below a certain age at the time of the block. For example you could say for the purpose of block scoring outputs older than one block month (4,320) aren't included in the score. This would reduce the requirement to only a majority of the outputs less than a month old.
Still it will require some careful analysis to avoid some unexpected weaknesses. For as complex as Bitcoin is in implementation, it is rather simple (maybe elegant is a better word) in design. There are still nuances, and gotchas in the Bitcoin protocol and it is built on a simple design. More complexity may not be the answer.