In Arduino Mega, bootloader does not work when watchdog is disabled
My experience is there was 2560 bootloader provided on Arduinos (at least 2-3 years ago). Watchdog is not disabled in bootloader and because watchdog timer is not reset on non power-cycle reboot then watchdog reboot causes forever rebooting in bootloader because of timeout waiting for potential upload. You can prove it that main program starts after power cycle but not when watchdog forces reboot.

Fix was uploading non bugged bootloader.