I am sharing this story for all the noobs out there:
I've been using emc2 for quite a while with limit switches on both axii ends. I just installed some opto interrupters I made and decided just to go with single ones as homing sensors and rely on software limits. It just clicked how software limits really work with Emc2.
Before if I approached my machine limit I would get a limit error and the machine would stop and leave Enabled mode. I figured software machine limits would do the same thing. I was wrong, the machine will go to the software limit but will simply stop there but still allow other axii movement.
I put my homing opto switch just out of the bounds of the machine limits. Now once the machine is homed it never triggers a limit error! I can be confident the program will finish since software limits are checked when the program is first started.
Also, learn about "Touch Off" if you havent already.
C