The reason that a late train can sometimes be cancelled is to try and stop a cascade of delays from happening. Tracks only have so much capacity, and if train gets delayed into a time-frame that is highly congested, trying to fit the delayed train into that time-frame will result in delaying other trains, which could then cause further problems down the lines and throw the entire network out of order.
They accept a certain number of cascading delays like this, but sometimes it's just known that a certain delayed train will just be too disruptive to the network, so they're forced to just cancel a train to try and save the network's stability.