The Linux/PipeWire virtual mic (pactl, WirePlumber fix, signal restore)
is now behind target_os cfg; on Windows/macOS it compiles to stubs and
virtual mic defaults to off. Use VB-CABLE/BlackHole as the output device.
Cross-checked with cargo check --target x86_64-pc-windows-gnu (0 errors).
WirePlumber's node.stream.restore-target remembers where each stream last
played and restores it, ignoring the default sink, so vois.rs output kept
going to the headphones. setup() now installs a wireplumber.conf.d override
(restore-target/props = false) and restarts WirePlumber on first use.
Also: virtual mic setup runs before any device queries, and keep_others_off
pulls our own stream back onto vois.rs if it drifts.