What about something like Syncthing?  I use it to keep company files mirrored & backed up.  It's the same technology as BitTorrent Sync.  I avoid BitTorrent sync intentionally to prevent my data from going through their servers.

I did once use Syncthing to perform a Windows file server migration from a Win 2K server to an Isilon.  Most/Many/All of the users used different combinations of mapped drives, network locations, and shortcuts.  I used Syncthing to mirror the data between the two locations while I was able to migrate the users over time and normalize the methods they used to access files.

Depending on the amount of data this may not be a viable solution for you.  

Depending upon your version of Caché you may also have the %SYSTEM.WorkMgr and %SYSTEM.WorkMgrIPQ classes available to use.  In WorkMgr child jobs on their own can write back to the parent processes main device so it isn't quite IPC in the sense that you're likely used to.  However, it does make multithreading a job a bit easier than spawning children and then monitoring them.  I've not used the WorkMgrIPQ class myself (at least, not yet) but the class documentation is closer to IPC in that structured data can be sent back to the parent/host process.

My method for dealing with the pop-up boxes is to not deal with them at all.

In IDXTerm, under the Edit menu select 'User Settings'.  In the window that appears change the 'Terminal Type' from "IDXTerm" to "Plain".  Click Save and Apply and start up a new session for good measure.

Changing this setting will prevent IDXTerm from responding to the extended control character sequences.  Anything that would have been displayed in a pop-up window will now be displayed in the terminal area itself, which will make it an easy target of the IDXTerm scripting language.

My experience has been that changing this setting makes IDXTerm scripting infinitely more useful for repetitive tasks.

Best of luck!

John