Would you mind going into further detail on "dark signals" and "red/double red signals"? Sounds interesting, I would enjoy hearing a bit more about how it works from someone who actually works on it.
Think of a length of many miles of track as a series of segments, blocks, each electrically isolated from the next. the 2 rails are also isolated from each other. At the entry to each block, there's a signal & a signal house. An electrical signal is introduced into the rails and the signal house detects if the two rails are electrically joined, like by the axles & wheels of a train. If they are, the signal for that block & the block prior is turned red, the block prior to that yellow, and the one prior to that green. That's in a single red system. a double red system creates two red signal blocks behind the train, rather than just one. Each block is sufficiently long for a train to stop between the entry signal and the signal for the next block. In a single red system, if an operator runs a red signal, he could run into his leader under conditions of poor visibility & traction if the leader were stopped just beyond the upcoming signal. In a double red system, he'd have to run 2 red signals.
All of this information is tied together at a control center, where a systems controller person supervises train movement. Operators are taught that a dark signal, no signal, is the same as a red signal & they must stop, proceed no further w/o authorization from the control center by radio. Running a red signal is grounds for termination in most systems. More exotic systems are often used, along with GPS, whereby more signals are used in the system that can limit speed, set switches ahead of the vehicle, and stop the train. Signals can be displayed on the train operator's console, as well as on the signal trees adjacent to the track. It gets more complicated with bidirectional track, too, and the actual display can vary from one system to the next.
Ultimately and finally, however, safety comes down to the individual train operator. It seems likely that the operator in the following train realized something was wrong before the collision occurred & managed to slow considerably before impact... and that he or she or the controller person had made a mistake allowing it to happen at all.
I should clarify that I work on the train side part of the system here at Denver light rail, not the track side hardware...
Google "Railroad block signaling" & similar for more info...