Split FanoutProgressDatum and FinalPartialFanout redeemer
Closed ──PartialFanout──────────► FanoutProgress
FanoutProgress ──PartialFanout──► FanoutProgress (repeat)
FanoutProgress ──FinalPartialFanout──────────────► Final (burns tokens)
Closed ──Fanout──────────────────────────────────► Final (≤ threshold, unchanged)
Off-chain, HeadLogic.emitNextFanoutStep now distinguishes FreshFanout from
FanoutInProgress to select the correct tx builder at each step.