Extract _filter_providers() and _try_single_provider() from complete(),
reducing it from 84 lines to under 25. Each helper has a single clear
responsibility and is tested directly.
- _filter_providers(cascade_tier): isolates tier-based provider filtering
- _try_single_provider(...): encapsulates per-provider attempt logic
(availability check, quota gate, model selection, retry, metrics)
Fixes#1185
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>