Сотая тема на одно и то-же.
Если написать while(1), то WDT сработает, но не обязательно модуль перезагрузится. На выводах пользователи вешают всё что попало и не соблюдают стартовые условия "притяжек" на пинах. Так-же не все ветки перезагрузки сделаны корректно в ArduinoIDE...
В итоге - в 30% случаев, модуль просто зависнет, после срабатывания WDT.
Пример:
ROM-BIOS запускает код с адреса 0x40100000 по ветке перезагрузки 'Jump Boot', если:
GPIO0 = "0", GPIO1 = "1", GPIO2 = "0" (boot mode: (2,x))
а не грузит заново boot от ArduinoIDE.
Что вы хотите от модуля, у которого [inline]system_restart()[/inline] не всегда срабатывает, а платы NodeMCU вообще не стартуют сами при подаче питания (или рестартуют по десять раз при включении шнурка в USB, тем самым сбивая записанную конфигурацию WiFi в Flash) ?