Pull-based ScriptProcessor approach broke audio completely. Back to createBufferSource scheduling which worked, but with tighter 200ms max drift (was 300ms). Snaps back when exceeded. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>