#34896 [Bug]: budget_limits window resets are delayed by the timezone offset when litellm_settings.timezone is set
### Check for existing issues
- [x] I have searched the existing issues and checked that my issue is not a duplicate.
### What happened?
When `litellm_settings.timezone` is set to a non-UTC timezone, per-window budget resets (`budget_limits`, added in v1.83.10) fire late by the timezone offset. With `timezone: Asia/Tokyo`, a monthly window whose `reset_at` is `2026-08-01T00:00:00+09:00` is actually reset around 09:00 JST (= 00:00 UTC), so keys that exceeded the window stay blocked (429) for ~9 extra hours.
Top-level budget resets (`budget_duration` on the key) respect the configured timezone correctly. Only the `budget_limits` windows are affected.
Cause: `ResetBudgetJob._reset_expired_window()` strips the tzinfo from `reset_at` without converting to UTC, then compares the local wall-clock value against naive UTC `now`:
```python reset_at = datetime.fromisoformat( reset_at_str.replace("Z", "+00:00") ).replace(tzinfo=None) # keeps +09:00 wall-clock time, drops the offset if reset_at > now: # now = datetime.utcnow() return False ```
Converting before stripping fixes it:
```python reset_at = datetime.fromisoformat( reset_at_str.replace("Z", "+00:00") ).asti…