First thing, clear WDT inside loops like reconnect() or in hangs forever.
Also, fix millis rollover by reboot using subtraction, not now > X, and eboot if MQTT is down for 1 min.