M1 is the normal code for an Optional Stop. Exactly how this would be integrated with your macros I'm not sure. I guess that I would not use tool 100 under any condition, that way the code is a bit simpler, >100 or <100. I would think that 99 tools should be more than enough for any job.
I need to think about your last question a bit.