The provider list is cached here for 24h, but plugins can be installed by a
system other than this one — enterprise installs them through the plugin
daemon directly. Nothing then tells this cache it is stale, so a newly
assigned plugin stays invisible to the workspace until the TTL expires.
Add PLUGIN_MODEL_PROVIDERS_CACHE_ENABLED so those deployments can turn the
cache off and read through to the daemon, which owns the writes and can
invalidate correctly. Defaults to true, so nothing changes for anyone
installing plugins through this API.
Extract _fetch_plugin_model_providers_uncached so the disabled path and the
caching path share one daemon fetch. The early return sits before the
generation read and the refresh lock, so the off path touches no Redis at all.