Looking at the behavior of ::exit()] it seems juce::Process::terminate() is still not doing the right thing. The docs for terminate state:
/** Kills the current process immediately. This is an emergency process terminator that kills the application immediately - it's intended only for use only when something goes horribly wrong.
And I agree with this. but exit() is not the way to do it. You probably want abort or _exit
It seems only Windows has the right implementation of Process::terminate()