As soon as that PaymentRequest leaves the wallet on its way to the hotel server, it is up for grabs

Is it? I'm assuming TLS is being used here. And the hotel server also has a copy of the PaymentRequest, as the hotel actually issued it and that's how they're deciding the receipt is valid. So I don't know how it could be stolen unless the attacker can break TLS.