- Fix typo in OTA update status API endpoint (/ota_udpate_status → /ota_update_status)
- Replace WebSocket-based update progress with polling mechanism
- Add OTA lifecycle callbacks (started, finished, progress, error)
- Implement check_update_task with internet connectivity verification
- Add LittleFS/SPIFFS update support
- Simplify update progress page to use 90-second delay and polling instead of real-time WebSocket updates
This refactor improves reliability by checking internet connectivity before attempting updates and simplifies the frontend by removing WebSocket complexity in favor of a timeout-based polling approach.