I think the missing piece here is related to the not yet defined logic on how / when blocks will be produced by an On-Demand Parachain.
This was in a presentation from a while back, with the old parathread model in mind, but I think it still applies:
I would hope that the runtime for On-Demand Parachains may allow for anyone to be a block producer if they are willing to pay for the fees to submit a block. Polkadot itself can check that the block is valid.
In this case, the Parachain logic should include some reward, which will offset the costs of submitting the block. This could be as simple as collecting all the block fees. This means that an XCM between two On-Demand Parachains, with the right amount of fees / rewards, would happen “instantly” because someone out there would be incentivized to publish both blocks and collect all the fees in the middle.
The diagram above has another model where the On-Demand Parachain itself generates a block reward, which increases exponentially as the time between the last block published to Polkadot increases. This would ensure that even blocks with relatively small number of transactions and fees get published.
The On-Demand Parachain model could be a lot like going back to some kind of proof-of-work system, without the wasted hashing computation.
Hope this is accurate, but happy to be corrected