Hello MHartm
If you want to buy discounted tickets, you must buy the tickets in advance and they are valid only in a specific train (except the Saver Day Passes in Switzerland). They have other restrictions.
If you want to travel with a direct Eurocity from Zürich to Milano, you must buy the tickets in advance to reserve seats, it is mandatory. Discounted tickets are also available.
If the Nightjet is late, you can continue with the next available train of the same transporter if you have train bindings. You should ask for a confirmation of the delay, and, if a reservation is mandatory, obtain a new one at the ticket office.
If you don’t take a direct Eurocity, but a regional train between Lugano and Milano (for example RE80), buy tickets only from Zürich to Chiasso in advance if you want any discount.
From Chiasso to Milano, you can buy Arcobaleno Transfrontaliera Tickets in the SBB Mobile app when you know if you are on time or not. Such tickets are valid only 4 hours.
Kind Regards
Danhiel