ModbusMaster blocks OTA updates

This looks similar to my recent post.

Do you happen to have a TCP connection of some kind open? My application isn’t do as intense IO as it sounds like yours is, but might have similar impact.

But to your latest question, if you check for System.updatesPending() often enough, yes that should work. Otherwise, the firmware_update or firmware_update_pending System Events might be of interest.