I dont think there is a right way or a wrong way, all depends what you are hapy with I would suspect.
You are using the reference move then offsetting from the machine zero position, doing a probing routine would do similar I would think.
I am hoping to do it external to Mach by using my servo drive to home via current limit, means I wont need a floating holder or a switch set up similar to yours.
What the problem seems to be with you is the axis is stalling on occasion, why I am not sure as the G28.1 seems to adhere to motor tuning Vel and Accel for me, although as previously said it is hard to be sure as my accel and velocity are quite high.
Away to weld some alu on a boat but if I get a chance later I will set my Z Accel extremely low and see if the G28.1 follows it.
Hood