I've had a lot of success with bitcoinmarket.com (BCM). I have had a number of trades take a day or two to complete on the buyer's end. One trade that was late into the second day had me a bit annoyed, as you are now, since the market was moving and that bit of leverage was stuck in limbo. So, I contacted Dustin and this was his response when I asked if/when unfulfilled trades expire:
Yes, it is 10 days. I need to get the trade rules up.
The seller has no way to automatically cancel a trade since the BTC is withdrawn from their account at the moment it is conducted. This would introduce an exploit for scammers. If you think the buyer is intentionally being slow, in order to exploit a rising price, let me know. I will cancel the trade.
Hopefully your buyer comes around soon.