Can anyone explain what happens at tool change?

“how does one make sure your Z height is back to the proper home position after inserting the new bit?”

When using 2 separate files for roughing and finishing.
To re zero the bit/z axis leave it loose within the collet.
Let bit drop to the work surface and tighten collet.
(Adjusting the $1 value to 255 max idle delay will keep the motors locked and prevent loss of position in X and Y.)
Alternately use G 28 to get to preset position (previously setup by G 28.1) for X and Y. Careful as this is a RAPID move.
G 30 and G 30.1 pair could also be used.