For my use case I am sending about 500 bytes every 5ms (this has a 1 byte response). This works for between 5 seconds and 15 minutes and then it goes into a really bizarre state. The remote app sending the data times out due to lost connection, but the ESP still sees the socket as open, as the ESP is in single client mode, I am then forced to restart the ESP if I actually want it to do anything.
At this point I have already commented out the code that processes the data coming in, so all the ESP is effectively doing is assembling the packets, and responding with an OK byte