The duplicate path is isolated to the retry handler and event ledger. I can fix it without touching the retry window.
The handler now records each invoice event before acknowledging it. The focused replay passes for successful, duplicate, and delayed deliveries.
An 8-second window made the delayed fixture intermittent. The verified fix is still available at the recovery point above.