There are a lot of reasons trains are stopped for a number of reasons.
Not enough track in the train yards
According to Richard Zientek of Union Pacific, trains often have to wait until the yard can take them. If there is not enough track, then they have to wait on the line
What is the rule?
The rule is that if a train is going to be stopped for more than 10 minutes, it is supposed to break apart to allow at-grade traffic to pass. This does not happen. If you are seeing the trains are stopped for more than 10 minutes, report it: https://www.fra.dot.gov/blockedcrossings/
The trains are getting longer
The trains are substantially longer than they were even 2 years ago, meaning when they do block intersections, they block even more than before.
This is likely related to the increase in Port of Houston activity which is great for Houston as a whole. Trains just need to keep moving.
People on the track
When a conductor finds a person on the track, they will have to walk the entire length of the train to confirm it is safe to continue. This can take 45 s minutes to 2 hours depending on the length of the train.
Trains break down
When a train breaks down, it will remain in place until it is fixed. This is a lot like a broken down car.
Train crews are switching shifts
It happens where train crews reach the end of their shift and a new crew needs to be brought in before the train can continue.