One thing that became clear after writing this:
Delivery itself is not the main problem.
Timing is.
You can have a perfectly “delivered” message that still fails in practice — especially for OTP and time-sensitive flows.
I wrote a follow-up that focuses specifically on that layer:
how timing, routing and execution paths actually define reliability