Well, maybe this idea is already proposed but what if we could make instant (as instans as the speed of light in optical cables) transactions by exchanging private keys.
The idea is to made transaction with a number of outputs each with some little amount of bitcoins, for example a 10 outputs with $10 worth of bitcons each. And wait for its confirmation.
Then when you want to buy something that costs, say, $22.5 you give the merchant 3 outputs with the corresponding private keys, merchant ensures that these outputs indeed have $30 worth of bitcoins and have 6 or more confirms and then merchant creates a transaction that deposits $22.5 to his address and $7.5 to yours as a change. You immediately can spot a scam if merchant doesn't issue a change transaction so in a face-to-face situations this might not be a problem. Simple and as instant as possible, no third parties, requires only some trust to the merchant, you can lower risks by making outputs with smaller amounts, like $1, $5 etc.