timeToCloseZones

How long each request waited for its space to drain. Zero when the space was already free.

An observation per request, which is why pooling it across holders loses nothing: a mean drain delay over every closure in the run is the quantity a modeller wants, and one holder's share of it is ZoneAllocation.timeToEngage on that holder's own allocations.