Never say "never". You just assuming that it would never stop, but is not likely to happen. You can't not know, because you have no infinate time to verify that it "never" stops.
The goto zero sends the Z axis to the SafeZ height first if the actual Z height is lower then the setup Z height.
Your set Zheight is probably higher than it should be. Check that setting...