Fix: scheduler intermittently skipping shows on Windows Server (silent skip, no error).
- Watchdog timer in runShow: if a show stays 'running' for 30+ minutes (e.g. FTP upload hung on dead TCP socket), status is force-reset to 'error' so future cron ticks are not blocked.
- Live schedule check every 2 minutes: re-triggers any show whose scheduled time has passed today but hasn't run, acting as a safety net if node-cron misses a tick on Windows Server.