> My understanding is that it computes the time simply as (estimated_end_time - start_time), and it determines the estimated_end_time as whenever you would reach your destination, which accounts for train schedules and walking time.
It does do that. But it moves start_time into the future, and that's what makes it not count the time of waiting for the train.