Depending on which procedure you end up with remember, if you do depend on having the steppers locked during the tool change, be sure to disable the lock timeout with M84 (at the start of your gcode). The default in Marlin is 60 seconds and I can tell you that I would never be able to fumble my way through a tool change without the steppers releasing in 60 seconds 🙂 ! See my comments in http://www.vicious1.com/forum/topic/fusion-360/#post-4102.
Also I’m kind of confused about the differences between M0, M1 and M25. The reprap wiki says for M0 and M1: “All motors and heaters are turned off”, which would be bad. I use M25 with an LCD and it works perfectly.
I’m not sure how ESTLCAM handles post processing but It should not be hard to do something similar to what I did for Fusion 360. If you use an LCD I think it is really easy to just have the tool automatically move to a convenient location (relative to your origin) for the tool change, beep and wait. Then after changing the tool you just select “resume printing”. No need to jog the head around manually. Please let me know if you need a better explanation. Also take a look at my Fusion 360 post file. It has some comments at the start.