If a vendor is trusted and rated, then perhaps a down payment can be made with the rest locked in a 2-of-3 transaction. Three keys are created, one by the seller, one by the buyer, and one by an automated third party service. If the two parties are satisfied with their own resolution, then the private keys can go to whomever it belongs, if they cannot, then the third party is activated. I do not think a pure 2 party escrow can be created without the risk of tying up funds indefinitely. There is no sense in that.
There is sense in that for small transactions where the cost of third-party arbitration might be more than the transaction itself. Or if the transaction is especially sensitive and the parties do not wish to compromise their privacy. Yes, the risk of permanent coin loss is not preferable, but I don't think it means that such contracts should never be used.
There is a lot of value in the ability of the Bitcoin network to serve as an escrow service. And the risk of the coins being totally lost is a huge incentive for the parties to complete the transaction agreeably (especially when you include risk deposits as I recommended, if it was feasible). Sure, one party could die or have a HDD failure, but such events would be rare compared to the volume of other transactions that would benefit tremendously from it. I can't think of anything that is more in the spirit of Bitcoin, than having the network itself serve as a replacement for third-party escrow services.
Interesting, exactly the same functionality can be done with DAA:
...
No need for 2-of-2 multi-signature.
Maybe the two tools could be used together to do more advanced contracts!
The point of multi-signature transactions in the Bitcoin network was so that you don't need any fancy math to achieve M-of-N transaction types. I totally appreciate that such mathematical solutions exist, but it scope is extremely limited without getting insane (Mike Hearn has previously referenced papers on ECDSA thresholding schemes).
One of the biggest limitations of these mathematical solutions is that at the end, someone ends up with the full private key for the funds. This means that if an agreement is made to split the money, one party has to trust the other to send them their share. Alternatively, with BIP16/multi-sig, one party simply creates the transaction they would like to see spent (which can be any distribution of the encumbered funds) and then the other party only needs to sign and broadcast if they agree.