admit now meters each transmission against messagesPerEpoch and rolls the
epoch window when epochPeriodSec elapses, instead of admitting every call.
This is the client-side rate gate the SendService already calls into.
Drop the unused queue field and dequeueReady: the SendService owns the
pending work as DeliveryTasks and re-offers parked ones each loop tick, so
the manager needs no queue of its own. admit keeps its signature so both
call sites stay untouched.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>