Per-PayloadRequestKind decaying call-rate estimates over three trailing
windows. Each [DecayingCounter] settles at rate · τ, so the values read
directly as “estimated calls in the last hour / day / month”. Pairs with the
lock-free all-time request_counters totals, which stay exact.
Build the requests subtree: one object per [PayloadRequestKind] variant,
keyed by its Display name, holding the all-time total plus the decaying
per_hour / per_day / per_month rate estimates evaluated at now.