My 2 cents
When I am constructing ladder logic, I like to seperate the code into sections.
First: manual control,
Second: automatic control,
Third: logic taken from first and second step and other inputs,
Fourth: outputs to material handling from logic derived in 3rd step, Fifth drive outputs for lights
Although an e stop will remove power to all output rails via hard wired relays, I also use the e stop signal to prevent outputs from being generated.
Doing it this way seperates the program into logical steps. It is easier to follow and troubleshoot.
Thats my story and I'm sticking to it.