Very nice read Nathan! I did something similar with the same data but I augmented it with weather information. Moreover, I used the vehicle type of the train (IC, P, L, …) as a feature as well.
I managed to get around 53–55% with an optimized XGBoost Classifier. I can give you a csv with the features (including weather features) if you want. Another possible extension would indeed be to incorporate event data.
It’s clear that more data is needed to get even higher accuracies.