Microsoft Edge TTS defaults to enabled=true with autoSelectOrder=30,
and always passes isConfigured (no API key needed). This caused auto-TTS
to route to Edge instead of fish-audio when both had order=30.
Lower to 15 to win priority over OpenAI (10), ElevenLabs (20), and
Microsoft (30) in the auto-selection fallback chain.
- Widen voice ID validation to 20-64 alphanumeric (future-proof)
- Remove hardcoded default voiceId (SJ personal clone)
- Require voiceId in isConfigured + synthesize guard with clear error
- Add model header comment explaining Fish Audio's non-standard API
- Truncate error bodies to 500 chars to prevent log pollution
- Update tests and README to match