I'm not calling you a liar. You seem to be just mistaken about what you observe, which is what I point out. There is no need to shout about this or use colorfull responses. If you want to continue to believe what you believe now, you can do that. I just don't think that this belief will bring you closer to a solution to your problems.
If you don't like the assumptions I make about your code, maybe you can help me by showing more of your real code instead of your interpretation of your code? I think we are both convinced that your code does not behave as it should. You already have looked at your code and found no fault, yet there is a fault. Why do you think that your description of what you saw is accurate, as you did not see the fault? Of course, as I already told you, finding a small script that produces the problem is hard work. But if you don't want to do this work yourself, who else is supposed to do it?
I think I can grasp the complexity of the problem quite well. My approach tries to reduce the complexity of the problem, but so far all I hear from you is "It's just too complex". This is not an approach that I think will lead to a solution.
You seem to have a lot of misconceptions about how Perl works internally, yet you seem very eager to blame your problems on how Perl and your operating system works. I can only suggest familiarizing yourself with the programming concepts you're employing and with some testing strategy that allows you to eliminate the potential points one by one. For example, you could have easily ruled out fork-parallelism as a source of potential problems by reading up on fork() or by simply running your processes in a serial fashion.