Labels: bug, priority:low
Body:
Problem
rate_bps can be initialized to 0 or an absurdly large value, silently producing a broken pool (always-zero output, or overflow on swap).
Proposed fix
Add sane bounds checking (e.g., reject 0 and anything above a configured max) in initialize, returning an error instead of accepting garbage config.
Acceptance criteria
Labels: bug, priority:low
Body: