MessageManager in REAPER extension

Sorry, I know there are a few related threads on this forum but I can’t seem to get a result.

I’m trying to create a REAPER extension (they call them “plugins”) which is simply a DLL with an exported entry point function. I’m trying to have this thing continuously monitor the filesystem and then do some work in Reaper when it sees new files.

I managed to get a working version on the Mac using a juce::Timer subclass, with a manually created MessageManager, or alternatively with a ScopedJuceInitialiser_GUI. I also tried a version using InterprocessCommunication to instead trigger from my external app - all good so far.

The issue is that on Windows I can’t seem to get any love out of the MessageManager. Timers just never get callbacks and IPC doesn’t ever receive messages despite (supposedly) being connected. ScopedJuceInitialiser_GUI Seems to cause trouble loading the DLL depending on where I create the thing.

So does anyone have ideas about why these things would behave so differently on Windows?
Has anyone here ever attempted similar?