There is nothing stopping Tx3 from being broadcast and accepted by the network (assuming input B1 is from standard Tx) [...] I am unconvinced there is a way to do what this thread is proposing that isn't exploitable. The proposers have the burden of proof to show otherwise.
I agree that there is work needed there. It is, however, clear that one could in principle add an instruction to the scripting language which does exactly this. However, this would not be a good solution, and so work is needed to make the approach practical.
The problem with this approach is that the deposit can be spent to another address in the same block as the double spend.
No, that's no problem: usually miners will not do this as they can earn more by using Tx3 (or else, the guy who double spends still pays the miner a lot of fees).
Nodes could delay relaying of blocks including potential double spends (txs replacing txs the node knows about).
This would give miners an incentive to use the first / most popular tx with a certain prev output.
Do nodes currently not transmit tx's which are double spends, i.e., only keep the first one?