The controller definitely screwed up, but it isn't that simple. They had too much on their plate. They're overworked and understaffed. He was dealing with an emergency on the ground and multiple airplanes taking off and landing. The trucks are supposed to look left and right before crossing a runway, but the visibility was poor and there's no way of knowing if they did it or not, like you said. The pilots likely couldn't tell if the emergency vehicles were on the runway or beside the runway. Just a bad situation all around.
Most aviation accidents are like this. All of the holes in the Swiss cheese line up to create an accident. There were multiple opportunities for something to happen to mitigate it, but sometimes you roll snake eyes.