Transportation disasters typically are never caused by a single event. The systems we have tend to involve an element of human error and mechanical/electrical failures. This event sure sounds like a dispatcher threw the switch not knowing the Amtrak was southbound and then the (known) signal failures failed to warn the Amtrak what was ahead. I suspect the Amtrak engineer started braking as soon as he saw the switch thrown but there was not enough distance to stop.
Thoughts and prayers go out.