Block producers now limit memory growth in the VRF evaluator process by bounding queued won-slot results and reusing a single evaluator loop across epoch updates. The evaluator now preserves queued won slots across epoch refreshes, restarts stale scans after state changes, and only reports completion after the active epoch has actually been evaluated.
