Andrew: I'm glad you guys tracked this down. I'm having exactly the same problem (as far as I can tell).
My 'solution' was to use the etc/keepalive scripts to make sure the server is up and running. That way once the threads get all occupied, the server just restarts and then works again. It's a very poor solution, though, and not one I would use on a heavily trafficked server.