That fixed it! You've saved me many hours of work in re-implementing the IPC to avoid using that module, which also would have lost STDERR monitoring. Thank you very much.
Looks like that solved the compiling problem, and works great for the isolated example, but introduced a nasty memory leak in my actual script... 115 GB used in about 30 seconds before it failed by running out of memory. I suspect that might have been what messed up Perl2Exe since it basically kept relaunching my app like I'd put a while(1) loop around my code. I'll have to investigate further, the launcher component is purposefully kept as simple as possible and just handles launching and coordination. I appreciate your help as I didn't really know where to even start to fix that problem since I had no idea how the PAR environment differed from the standard PERL environment.