I Found the problem!!!!

So here's the deal. Later versions of XP will poll the parallel port until it has been accessed every 5 seconds. Toggling any input pins will cause XP to query the parallel port to see what's there. This does funny things to all the output pins. In my case when I toggle my ESTOP button which happens before any other parallel port access it would trigger this query and mess things up. This would clear up after I toggled the spindle on and off a few times. XP would give control back to Mach3 and it would not look at the parallel port again until after a reboot.
So here is the fix. Add this entry to the registry.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Parport\Parameters\DisableWarmPoll
This registry entry should be of type DWORD and have a value of 1 (0x00000001).
Reboot and problem solved.