А после реконекта, вы перезапускаете сервера?
Логика работы такая :
проверка if (WiFi.status() != WL_CONNECTED)
и если нет соединения, по новой WiFi.begin , а после того, как соединение востановилось,
делаем снова MDNS.begin , server.begin и другие, которые используете.