Cada navegación al dashboard disparaba verify-license y auth/me contra el Hub sin
ningún caché, sumando 1-6s por llamada del lado del Hub a cada request.
- security.py: token_cache TTL 60s→300s (el access token vive más que el TTL
anterior; cachear su verificación es seguro).
- middleware.py: nuevo _license_ok_cache (TTLCache, 300s) en
LicenseValidationMiddleware — SOLO cachea el camino "licencia válida" por
tenant_override; inválida/expirada/error nunca se cachea y siempre revalida
contra el Hub (fail-closed: el peor caso es que un tenant recién revocado siga
pasando hasta 5 min más, nunca al revés).