I have recently been to Mumbai-Pune for Audit purposes. In Mumbai, local trains run exactly according to schedule. I used to take local trains from Andheri station for CSMT and Churchgate and every time train was on time. If they were showing 3:19PM on app, train arrives exactly on 3:19PM, not even a minute delay. So I don't think intra-Mumbai travelling is problem at all. However, inter-city travelling was surely painful. I remember that we had to catch Passenger train from Pune station at 11:15PM for Lonavala but the train came at 1:15AM. It was quite painful to spend 2 hours on railway station with sleepy eyes after the lethargic day at Audit. So yes, railway system in India is quite pain-in-the-arse. That's why I usually prefer flights when travelling over long distances.
I have always never boarded a train which has arrived on time. Only Churchgate trains leave on time but never reach on time and passenger trains are even worse. I also prefer flights but last minute flights are 5 times costlier than the normal price unless you book it 3-4 days earlier. I travel just 1.5 hours but need to wait for 2 hours on the platform and plus they halt on stations for like 10-20 mins so it takes about 4-4.5 hours for such a short journey. Metro is the best but they are taking forever for the construction. In between the bridge fell down too so safety is NIL.