What you saying, that the g-code is run on the motion controller makes it worse for the task Terry wants, to make 2 instances of software to communicate.
It is already possible to do that with the UCCNC (it always was), but it requires programming, you can connect 2 instances using TCP/IP via plugins or using ICP (inter process communication) via plugins. The second only works if both run on the same computer. The first works even if the software instances run on separate computers but are connected into the same LAN network.
Since these libraries and solutions are available in C# therefor it is available in the UCCNC to code, but again it requires a programmer to do this, it is not simple.
And I also don't think that it would make your project to get implemented any easier, it would be likely just harder.
Coding a PLC to handle an ATC is I don't think is any simpler than to program things into the UCCNC, into a macro or into a plugin.
Programming a PLC is even much harder than programming an Arduino.
It is even harder with the friendly PLCs like Omrons and it can become a nightmare for the a non programmer to program a non user friendly PLC like the Moeller.

I know, because I have learnt to program PLCs and also I had to program several different brands when I started working after finishing the university...
Furthermore many PLCs can't even run an axis, they are just not fast enough to generate high enough step frequency.
The processor in our ethernet motion controllers run a complex and fast PIC32 microcontroller which is ways faster than any PLC, it runs over 200MHz and it can do Math computation on floating point numbers in a single instruction.
And it has lots of features which make things even faster in that particular type PIC32 MCU is e.g. the DMA controller which makes it possible to generate step/dir and other signals independently of the processor running, so outputting and inputting signals do not even take processor time, the processor can work on other things while the data is generated and being shifted in/out on the ports.
