My two cents: For my arrival I buy a Base (full fare) ticket in advance and change it if I'm running ahead or behind. I give myself a couple of hours just to be safe (even with an EU passport). Base fares also (generally) let you board another train of the same category with a small penalty paid on board, but since you get to change before departure or up to like an hour after, you can change it if you have the time and not pay the 8 euro.
The reason I do it is because I've been on a lot of very full trains, and have sometimes arrived and not been able to move my ticket up because the morning trains were sold out. I made it a practice to have a ticket that I'll very likely make just to be safe and ensure I have transportation. My last trip in December, in fact, was on a train booked solid and everything before it sold out as well, but it was also on the weekend of a national holiday.