But in that case the service provider may wait for a confirmation to release the service. If it detects the double expense, the airline ticket or hotel reservation would be cancelled.
This solution is so easy and obvious that your example cannot even be considered a “problem.”
It is not an "example". It happens every month. The last event was a day ago - the transaction was not even searchable on Blockchair until after block confirmation. Pure Panic.