Я бы согласился, если бы не увидел, что на другой прошивки такой проблемы нет (та, что на питоне) Но так как, есть рабочий вариант с такими настройками dhcp сервера, думаю вполне возможно реализовать сценарий, где tcp соединение останется живой
Сразу же Я написал бесконечный цикл на отправку сообщений на dummy сервер, в ClientContext-е (он дергает внутренние методы tcp из sdk) в методе on_error, который вызывается при ненормальном закрытии соединения, обратился по nullptr чтобы уронить ESP и снять стэктрейс
Там где-то глубоко вызывались методы типа ‘on_dhcp_renew’ и в таком духе
В стандартном примере использования MQTT есть часть которая демонстрирует что делать при отключении. Там просиходит переподключение с использованием таймеров. Но вот судя по дампу - Вы MQTT используете не по назначению. Для этого больше REST подходит.