Рассматривал этот вариант. В нем решение было перейти на прерывания с кнопками. С веб-сервером такое не проканывает. Долго отрабатывает запросы.
А в примере скетча mqtt_reconnect_nonblocking происходит таймаут проверки доступности через 5 сек. и точно такой же затык на проверке.
ESP8266: скетч на Arduino IDE, даже из родной библиотеки PubSubClient, при подключении к MQTT-брокеру, при недоступности брокера происходит задержка выполнения скетча.
Для сравнения использовал скетч WiFi-IOT. В нем при пропадании брокера скетч отрабатывает без задержек.
С помощью терминала...