I remade the script as I specified above, and while its working exactly as intended, the original problem still remains. Perl CPU usage is still too high when it should be idle.

I've found that I can give the FileList processes some more CPU room by setting the Perl process's priority to Below Normal or Low, but that's not really solving the problem. Its still needlessly using resources that can be better spent doing other things, or even being idle.