Yes, you seem to be correct here. That process would normally take some time, at least if the ATM company doesn't offer some intermediation or handle the escrow itself, but then we would already probably be in KYC territory.
However, there would be a way to make it a bit more instant: if sellers can signal their online status (so the buyers would take only orders from those who are actually online at that time) and agree to verify a new ATM transaction in let's say 10 or 20 minutes (otherwise to be penalized), then it would be already much more acceptable for the buyer.
And if the seller reacts slower, the ATM would only transmit them the code when they have accepted the transaction. So the buyer can go away without having to worry about his money, he would get it back if the seller cancels the transaction.
I think there would be an easier way. I've tried two types of Bitcoin ATMs. The most common one requires you to go there to get a ticket with the QR code and the address to send the transaction. This type of ATM would have the aforementioned delay issues. But there's another type where you can send the transaction from home and just go to the ATM to withdraw the money once it's been confirmed. This type of ATM would be much more convenient for what you're proposing.