Merge main into async_motion
Resolved merge conflicts by keeping async_motion branch features:
- Still Sands WLED control toggle
- Button loading states for save operations
- Timezone caching for Still Sands
- ID assignment fix for time slot modifications
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>