When a Zap fails to trigger, it's often a result of something preventing background queued processes from firing on the site in general. Here's the long version of why that's a tough issue to combat:
In the donation process, we limit the number of synchronous things that happen to those things that actually move the transaction through. Other actions and processes are essentially put into a queue to run after the fact. That's intentional, because the donation is the main priority.
So when a queued process doesn't happen, it's hard to isolate exactly
it didn't happen. The next best case is to be able to manually trigger the process.
So this feature request will solve two problems for the price of one. I'm escalating it to the team.