For me, this example kind is of ambiguous. I thought it seemed clear enough
from your earlier results, that executeFile played some role in the problem,
but in this example the two locking forks are parallel, and it's entirely
possible that both lock syscalls will complete before either executeFile has
finished or even begun, so ... unless I'm missing something (again!) I guess
I would say this calls for a lot more tests to verify that you have this
problem only with executeFile, and not with, say, a Haskell fork that does
the same thing (sleep and exit.)
By the way, I haven't been able to duplicate the problem with 6.12.3 on MacOS.