Control the event order directly. Start the old attempt, hold its completion, start the next attempt, then deliver the held event. What identity does your update check use?
Then don't just throw away every delayed event. It still belongs in the old attempt's history. Check that the new one stays pending until its own completion arrives.
Keep that exact order as the regression case, Kai. Much better than hoping a sleep lands in the useful bit. Offline bookkeeping fixed, not a test of the physical inspection.