The early return from flushSync() when this.flushing was true skipped the synchronous sendBeacon path, dropping pending reports during page unload. Move the flushing guard after the sendBeacon attempt so the unload-safe transport is always tried; only the keepalive-fetch fallback is gated on the mutex. Signed-off-by: Émile Ré <emile@getprobo.com>