Yes!
The way I understand VB to work (and I may be wrong if some of the lads tell us differently) VB is not part of Mach 3, in that it operates a little independently of the standard GCode program. It sort of stands apart, and feeds in lines of GCode into the system, until it's program is finished, and then hands you back to the standard GCode program reader.
Hence, for instance, you can have a bit of trouble on certain moves, and you have to include a "while IsMoving" line, to make the VB wait until the last line it sent to the machine has executed, and then it sends the next line.
It may be that the whole of your VB script can be included in a "while not EStop" condition so that the program will stop, if EStop trips. This would automatically drop the program through to the end of the script, and return you to the GCode program.The only problem with that is, I don't know whether VB checks the condition after each line of it's own program, or finishes the chunk of program before checking the condition again.
I am only thinking aloud here - and may be way off the mark. I will try and write something e.g. a counting program, and see if I can get that to stop when EStop is pushed.
Keep on with Scripts - they are very useful and a great assett to the Mach 3 capability. The majority of my maching uses scripts, particulary the lathe, where a lot of time is spent on repetative thinning down of shafts, wheels, etc. i.e. the same cut, just repeated many times.