[Windows] Add DLL notification queue to avoid deadlock (#60690)
This adds a queue so that the DLL processing can be deferred to a
profiling thread if the `jl_in_stackwalk` lock is contended.
The problem was: It is possible for a thread to be suspended for
profiling in the middle of a DLL load / unload event, in which case our
watchdog may wake the thread up and it will finish loading the DLL.
However, the load will immediately try to load symbols for the DLL and
hit a deadlock trying to obtain the `jl_in_stackwalk` lock still held by
the profiling thread.
See
https://github.com/JuliaLang/julia/pull/60463#issuecomment-3688139013
for more information.
Locally this resolves the rest of
https://github.com/JuliaLang/julia/issues/60306 for me, at least for the
MWE I have.