Woke up to see iocaine refusing connections again. Turns out there was a big wave a few hours ago.
However... iocaine does continue to work, and there were requests that managed to go through. It's just refusing a lot of them.
To me, this suggests a problem around accept(), so I'll have a look at the listener parts.