I'm used to using the bank, the apps they have and de debit cards they provide (and now also Apple Pay) to send and receive money instantly every day, and there are on average ~10 instant transfers daily to both other private accounts or businesses to pay for things.
Perhaps this is an exotic or luxury position, or there is some unseen cost to this, but I'm not aware of that at this point.
And $20 for a wire transfer pales in comparison to the fees people charge for converting bitcoin to cash https://localbitcoins.com/
Yes transferring large sums of money internationally is useful, but it is a niche, and bitcoin doesn't even do it that cheaply.
The closest thing to cancelling is making a new transaction which makes the first one invalid (e.g. by emptying the source address) and hoping the new one gets added to the block first.
Because transactions can have fees attached to them, you could presumably make it more appealing to mine the second transaction than the first, but I don't know if this is something people do, and as far as I understand it most miners prefer the first transactions they see.
there is a mechanism called replace by fee, so it becomes a question of incentives
The payment processors can scan the mempool for transactions that would invalidate the initial transaction, so then it would be a question of lead time. Great for digital services etc, not so great for in life purchases.
So if you absolutely 100% need confirmation, then yeah 10 minutes is what you need to wait, but that again is a question of probability comparative to credit card chargebacks/fees etc.
Even the next block inclusion isn't a guarantee... it just means that you have at current prices approximately 200k insurance. With enough resources and luck, someone could +EV roll back your transaction, but the cost scales exponentially.
The current viable solution for small inperson transactions is pretty much replicating the banking system. Current versions of abstracting the banking system into something decentralized are clunky/buggy to say the least.