fa951e570ff6fea1b2c783c561aeef3d804a44ce
Covers the previously-untested branches of the NoiseGate envelope/timing: frame_rms known values, empty-frame transmit-follows-state, disabled gate parks the envelope open (no fade-in on re-enable), hold-window-then-release ordering, sustained mid-level refreshes the hold, and a loud signal re-opening a releasing gate. Gate tests 6 -> 12; test-only, no prod change. Implemented by Gemini per next-task.md; reviewed against the real diff and re-verified (build + clippy --all-targets + test all green) by the senior. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>