Could bitcoin/blockchain be used to create a secure non-3rd party escrow? I'm wondering if there could be a block chain approach to selling goods and putting money in an escrow-like state until the goods are received.

I'm envisioning the following scenario.

1) Buyer puts money into escrow with seller and adds it to the block chain. In this state the buyer can no longer spend the money, but neither can the Seller. 

2) Once seller sees the money in escrow on the blockchain associated with their account, they release the goods to the buyer.

3) Once the buyer receives goods they approve the escrow.

4) The seller takes ownership of the funds.

I think this helps to protect buyers who get ripped off by sellers promising goods, accepting funds then never handing over the goods. 

Obviously in this situation a buyer could decide not to approve the escrow, but they would have no reason to do that because the money is not spendable by them anyway.

So my question is, is there something like this or could something like this be created?
I would think it has been asked several times, but not in this detail. The way to use escrow would be a „2 of 3 multisig“ transaction. A search in the forum reveals a lot of links. Also very useful is the wiki and of course the bitcoin.org webpage. There are even wallets providing multisig functions. But still it is not „an easy usecase“. Data has to be exchanged between the parties, and as far as I know, there is no protocol specified. So it is still possible to make errors and loose funds :-(

Oh, and then there is Andreas‘ book „Mastering Bitcoin“, which explains even more escrow (3 of 5 combination). Worthwhile to read, and also online available.