fn compute_postpone_follow_through(
events: &[LoggedEvent],
range_start: DateTime<Local>,
now: DateTime<Local>,
) -> PostponeFollowThroughExpand description
For every BreakPostponed event inside [range_start, now], look
forward in the (chronologically ordered) event stream for the next
BreakEnd or BreakSkipped of the same kind and bucket the outcome.
Intervening postpones of the same kind don’t resolve — we keep
scanning. A postpone with no later resolution in the log counts as
unresolved.