If a macro does not finish in Mach3, I highly recommend restarting Mach3 before doing anything else. Otherwise, bad things can happen.
Unfortunately, there are a lot of little bugs in Mach3 that only show up 0.5% of the time.
Now, I've never seen a macro terminate early for no reason, so it may be an issue with your macro.
The only thing you can really do is test, test, and test some more until it's 100% robust.