81a0cf4710
Work that arrived during the ~15s push_backoff_ms window between two ticks landed in the pending map before the next tick's start-of-tick snapshot, so a shared per-lead-per-source counter (carried forward via scheduleNext(lead, count+1, ...)) already treated it as exhausted backlog even though no nudge had ever named it. ReplyPushLoop.tick now recomputes each source's reminder count fresh every tick as the minimum nudge count among that source's currently pending items, so a freshly-arrived item (count 0) keeps its source eligible regardless of how depleted an older, still-undrained sibling's count is. decide() itself is unchanged.