- Distinguish plan usage limits (429 with usage_limit_reached) from transient rate limits - Show approximate reset time in hours for plan limits - Treat HTTP 500 with large sessions as context overflow (same as 400) - Move history length check earlier for reuse across status codes