Tweaky:
This sounds like a Mach4 error similar to one M3 has a long while back. The Gcode should stop being interpreted and wait for something like an M3 or M5. It sounds like M4 is doing something strange with macros.
Heres what I think is happening. When Mach4 sees the M5, it starts a wait thread. This thread wakes up every once in a while to see if all else is done up to that point. If it is, is does the M5, if it isnt, then it goes back to sleep.
For some reason it sounds like this is affecting job performance. Perhaps this thread waking up and going back to sleep doesn't affect external hardware but for screws up the program calling darwin regularly. Id report it to Brian and see what he thinks.. Things are still changing too fast for me to focus on the plugin, Im on other projects till M4 is further along.
Art