Safely homing - Polyscope X

We are currently working on multiple robot-cells with Poly X UR20’s.
A thing i cannot wrap my head around is, how are the customers supposed to home the robot, if anything happens, like the robot crashing or they need to move it?
Usually on the Poly 5 robots, the move-tab is enabled so that they can freely move it if needed.
It seems, I have to create a “Safely-homing” Subprogram, that utilizes get_actual_tcp_pose() and a lot of if-statements with movements to get out of tricky situations.

Any tips on how to do this best?

I wrote a before start sequence.

First check if home, if not then set current position values to a variable. I then change the X &Z element to a fixed location. Move to that. Repeat for Y. Then go home.