Alright, so it appears the unstable e-stop signal is causing my problems. While running a series of jogs in a loop, I had the controller stop early 4 times out of 4 with the e-stop pin enabled, and not at all with the e-stop disabled.
It sounds like the quick solution to this is to enable debounce filtering on the input signal. I consider it absolutely necessary to have the E-stop enabled; until I get a chance to try and figure out how to rewire the machine, the E-stop will only stop the spindle (not the axes moving) by itself.
I've tried to piece together the correct code to enter into my custom.hal. Please let me know if there is an error somewhere within this:
# Load debounce
loadrt debounce cfg=1
# Add debounce to thread
add debounce.0 base-thread
#Unlink e-stop pin
delsig estop-ext
#Assign input and output to debounce
net estop-incoming parport.0.pin-10-in => debounce.0.0.in
net estop-filtered debounce.0.0.out => iocontrol.0.emc-enable-in
# Activate the debounce
sept debounce.0.delay 25
Oh, and just as a point of thoroughness, the memtest86 showed zero errors while it was running.
Thanks for all your help on this so far guys, you've kept me from pulling out my remaining hair.