ModelProvider wrapper with retry + auth-key rotation. The model_provider Vec exists
for tests to exercise multi-provider failover; production wiring always
passes a single primary. Per-model failover chains are also test-only —
the schema no longer surfaces them.
Check if an error indicates an authentication/authorization failure.
Used by channels to evict cached model_providers whose OAuth tokens may have
expired so the next request triggers a fresh credential resolution.
Run the given future within a provider-fallback scope.
Both record_provider_fallback (inside ReliableModelProvider) and
take_last_provider_fallback (post-loop channel code) must execute
within this scope for the data to be visible.