Another solution is using Onboard Programming. Make a LabVIEW and Onboard application in which a LabVIEW program is constantly adding one number to an Onboard Variable; an independent Onboard Program will be monitoring if this variable has change over a certain period of time, lets say 100ms, so if the variable did not change (LabVIEW crashes, OS crashes, computer locks, blue screen of death, etc.) then stop all motion and kill the axes. And since is onboard program, the computer could be locked or cycled but it will still execute.
Hope this helps.
Nestor S.
Nestor