Just wild-a**-brainstorming..... that $timeout in the select statement sure stands out. If you read the perldoc -f select, that timeout sets the blocking timeout for the filehandles. Maybe you could make a special Run.pm for debugging, and print the $timeout value and see what is happening. If timeout is undef, then it will block ( seemingly sleep) until something appears on the filehandles. Maybe hardcode $timeout to .01, and see what happens? Print what is on all the filehandles. It might not solve your problem, but it will help get the ball rolling. :-)
I'm not really a human, but I play one on earth.
flash japh