Fix the broken video export: real frames + audio (was 1 frame, no sound)

Paul: the recorded video was "one frame for an hour with no audio, VLC crashes." My earlier headless probe only checked blob size + a SEPARATE press-path rms, not the actual video content — so it missed all of this.

NO AUDIO — on DESKTOP the classic graph has no msDest (userGain → destination directly), so audioStream() returned null and there was no mediaEl to fall back to.

• ONE FRAME / hour-long / VLC-crash: the capture canvas was OFF-DOM and driven by requestAnimationFrame — captureStream produced a near-static, malformed stream.

Verified: (test/video-export-probe.js, now checks REAL content): 6 s take → 171 composited frames, audio track present, vp9+opus webm, 536 KB (was a static ~200 KB).

▶ Play it: Food Court Eternity — the brightest, most processed corner of the space https://stellate.app/?genre=vaporwave&seed=7687&path=1679.4393,1698.4426,1660.4426&xdur=13.122

c4e7292 https://github.com/aboard-io/stellate/commit/c4e72927d25f7c2c5371dc825ed770930f49d3ec