Because your macro manipulates items onscreen, it is going to be very problematic to have it running while you may be doing other things. There are just so many things to you could do while the macro is running that it would be complicated to trap for all of them.
My suggestion would be to put a controller at the start of the macro that alerts you that the macro is about to run, so you can just stop doing things until it finishes, or cancel if you're busy with something. I wrote a little macro called The Decision Maker that puts up a countdown timer box which lets you do just that—it can react differently to any number of keys you define.
I use this in a lot of macros that do GUI manipulation with a short countdown and just one option—i.e. a three second countdown and if I press Control, the macro cancels.
If it continues, you could put up a progress box with a -1 value (which just bounces the progress bar part across its range), then set it to 100 when done, so you know the macro is still running.
-rob.