The problem I currently see: What will happen If I never release the money, even If I have successfully received the goods.
There will be no central instance where the Seller can complain to.
There are a number of challenges faced when designing an escrow system. The main ones are 'the seller not sending the goods' and 'the buyer not releasing the money after receiving the goods'. It is therefore necessary to ensure both parties have disincentives for not fulfilling their obligation.
An example might be the buyer pays twice the amount of the purchase price into escrow and receives the extra portion (equivalent to the purchase price) back when he/she releases the money to the seller. The seller would also be required to deposit the purchase price into escrow, this would be returned to the seller when the buyer agrees that the transaction is satisfactory and complete. In this way the seller would lose money equivalent to the purchase price if he/she didn't ship the goods, and the buyer would pay twice the purchase price if he/she received the goods and refused to release the money to the seller. Now both parties have an incentive to complete the transaction and a disincentive to try and cheat the other person. This would allow a peer to peer escrow system to work well for most people, without having to worry about being cheated. There are still challenges however, what happens if the buyer dies, he/she will not be able to release the money, or the seller dies and is unable to ship the goods. This would create a situation where both parties money becomes stuck, and unable to be returned. You could have a time limit set to automatically return funds held in escrow if neither the buyer nor the seller object within a given time frame, but this would require a trusted 3rd party or network node.