Jetstream cursors are time-based and the upstream docs explicitly note that exact-boundary replay across a disconnect is not guaranteed gapless. Resuming from the precise saved TimeUS could therefore drop events that straddle the reconnect window.
On every (re)connect, subtract a fixed jetstreamRewind (5s) from the loaded cursor before handing it to ConnectAndRead, clamping at zero so a tiny saved cursor can't go negative. The replayed events are safe to re-apply: applyCommit dispatches only to UPSERTs and DELETEs keyed on (did, rkey), so duplicates collapse into the same row state.