fix(attribution): scope checkpoint subagent tokens to session cumulative
Commit

SaveStep re-subtracted SubagentTokensBaseline from CheckpointTokenUsage.SubagentTokens on every step, mutating an already-rescoped value in place. accumulateTokenUsage only REPLACES SubagentTokens when the incoming step carries a non-nil snapshot, so a later step in the same checkpoint window with a nil SubagentTokens (the subagent transcript was cleaned up, so CalculateTotalTokenUsage returned APICallCount==0 and left it nil) kept the field at its already baseline-subtracted value and the block subtracted the baseline again. That double-subtracts and, via clampSubtract, shrinks or zeroes a real per-checkpoint subagent total despite genuine subagent usage.
Derive the checkpoint delta fresh each call from the session-wide cumulative (state.TokenUsage.SubagentTokens) minus the baseline, which is idempotent whether or not this step carried a snapshot.
Extract the shared StepCount / CheckpointTokenUsage / baseline reset into resetCheckpointWindow and call it at all three condensation reset sites (CondenseSessionByID, CondenseAndMarkFullyCondensed, condenseAndUpdateState) so the baseline capture cannot drift between them.
Add regression coverage: a checkpoint window that drops SubagentTokens mid-window, an edge matrix (nil first step, growth, repeated nil steps), and a test that drives real condensation via CondenseSessionByID so the production baseline snapshot is exercised where it lives rather than hand-simulated.