control an Alen&Heath QU-16 digital mixer by MIDI over TCP

I have the same issue of the W5100 + Arduino hanging after a few hours to a few days. I have tried:

Uno+Ethernet shield, this hangs after a few hours
Arduino Ethernet board, this hangs after 1-3 days

The use of the timeout after no packet has been received for 10 seconds is clever. However, I cannot use a delay() as I am processing interrupts and don't want to lose one. If I knew where the code was hanging, perhaps I can use a counter and a timer. So that when the timer popped (say every 5 minutes), I can check the counter and if the counter showed there was a hang then I can perform the reset. Would this work ? Are any of these calls blocking:
client.available(), client.connect() or client.connected() ?

My code is very similar to the WebClientRepeating code, except that I am POSTing instead of GETing.

Many Thanks,

Netnut