I had similar experiences a year ago with the emulation of fork in Windows (Windows 7 Home Premium with Service Pack 1).
Running the tests of Test::TCP (version 1.11 and 1.12) on Windows resulted often in a blocking Perl interpreter. Sometimes the system reached at state, that it must be restarted.
I started trying to isolate the problem and this is so far I came: https://rt.cpan.org/Public/Bug/Display.html?id=66016#txn-910155.
My experiences/conclusion using perlfork - Perl's fork() emulation in Windows, are:
There is stochastic involved. Two identical calls (expected to give the same result) can give different results. What I understand is the problem in the implementation of the Windows API and not in the Perl implementation.
In some cases the processes running the Perl interpreter are blocking (coming in an unwanted state).
Sometimes the problem is not solved by restarting the Perl interpreter. Is there some missing initializations in the Perl interpreter?
In some rare situations the total system (not just the process running the Perl interpreter) is affected, and must be restarted. Sometimes it even must be restated using power down/up. The isolation between processes and the operating system in Windows has some weakness?
The questions which worries me are:
Is it advisable to use the Perl's fork() emulation in Windows in “production” code?
Is it enough to run the test of Perl modules just once or how many times are they needed to be run?