You might check out
Devel::STrace. It was originally written to address a similar issue with a multithreaded/multiprocess socket server, and surfaced the problem PDQ (some socket misbehavior causing a tight infernal loop).
Perl Contrarian & SQL fanboy