Non-Blocking Edgent Reconnection

I am working on a hot tub controller system with Edgent on a custom built ESP32 based board. It basically controls a relays and has a physical UI consisting of an LCD screen and 3 buttons. We have been running an Atmega version of this system for years, but I am working on getting full wifi capability into the tubs.

I have the wifi and app all working really well, but I made a mistake on the board design where I put a copper bottom layer under the wifi antenna, and the board is upside down so the signal is weak. The system still works fairly well but will occasionally disconnect for 30-90s at a time. My next batch of boards should solve this, but it brought my attention to a bug/issue with the way edgent reconnection interacts with the rest of the system.

It turns out that while it is trying to reconnect, the rest of the code is basically blocked from running. This means that the physical UI will not respond to button presses or state changes which is annoying, but more importantly there are some safety sensors that are likely not being read during this time as well. If there is a blockage in the plumbing and a heater begins to overheat while Edgent is trying to reconnect it seems the sensor will not read and the heater won’t get shut down.

I saw there was a topic similar to this about blynk simple from 2021, but I have found nothing about Edgent.

Is there a way to make the reconnection procedure non-blocking for the rest of the code, or can I at least set up a timeout to where it runs normally after a 20-30 second attempt before attempting a reconnect in 10 minutes or some other interval?

Thank you for you assistance!