Fixes device hanging when booted without USB connected. The root cause was calling Serial.available() and Serial.read() in checkForFlashCommand() when Serial.begin() was never called (USB not connected at boot). Changes: - Add if (!Serial) return guard to checkForFlashCommand() - Restore upstream while (!Serial) wait loop with 3s timeout - Remove Serial.setTxTimeoutMs(0) (not in upstream, may cause issues) - Remove unnecessary if (Serial) guards from EpubReaderActivity.cpp (Serial.printf is safe without guards, only input calls need them) Key insight: Serial.printf() is safe without guards (returns 0 when not initialized), but Serial.available()/Serial.read() cause undefined behavior on ESP32-C3 USB CDC when called without Serial.begin(). See: claude_notes/usb-serial-blocking-fix-2026-01-28.md