The three direct STT fetch() calls in voice-client-direct.ts carried no
AbortSignal, so a hung provider stalled dictation forever and the gateway
side stt timeout never applied to this surface. Each upload now carries
AbortSignal.timeout(60_000), mirroring the shared 60s STT default; the
configured stt timeout is not part of the voice client config today, so
the constant stands in for it (noted as follow-up in the PR body). One
existing vitest now asserts the signal is present (red without it).