Just to make sure we are on the same page, homing sets the machine coordinates to zero at the home position and probing sets the work coordinates to zero. The machine coordinates are the source of truth and the work coordinates are just stored offsets.
There isn’t any need for the first part of your fifth bullet point “Zero the x,y,z coordinates”. X, Y, and Z work coordinate offsets persist through power off. The way your doing it now you have two places for small errors to add up. The accuracy of both the limit sensors and the probing process.
You need to keep the homing part because before you home the machine coordinates are zero wherever the machine is when powered up. Either that or just in case the machine gets bumped. I know there was a reason I kept the homing part.
The sensors, at least mine, tend to be accurate enough for me to continue work. Take a look at these cribbage boards I made awhile back. I used 4 pieces of of smooth 6mm rod and holes in my work/spoil boards to be able to take the stock on and off the mill. The tops with the inlay are multi-sided and the top needs to come off for the inlay, then put back on to plane. Then taken off to sand and put back on for the laser work. The holes form a rectangle with XY zero dead center and XY is set once for the whole job. Just need to zero Z for bit changes.
EDIT: I should add that I’m not familiar with how the start from line feature works. I think you’d be okay as long as you are using absolute and not relative moves in your G-code. My boards are a bunch of short jobs that only use one bit so I’ve never stopped in the middle of a carve on purpose. The few times I’ve stopped in the middle of a carve I just made new toolpaths for the parts that weren’t done because I was afraid of messing up my work. I guess I’m too lazy to do a couple of test carves and figure out how it works. Sigh…