How about changing the behaviour of depots in schedules? Currently, sending a convoy to depot as part of a schedule sends it there, a dialog pops up "Train 1 has entered a depot" and it stays there. Suppose we changed depot orders to regard some flag (in the manner of Minimim load, max wait for load) that permitted entering the depot, then leaving after a short time to simulate maintenance.
That would be prototypical for trains, which in real life would terminate at a station, roll away from the station to be cleaned and serviced, and then return to start their next journey.
In the game, we could replace the current "obsolete" logic (which penalizes using old equipment) with a counter (months since last service) so convoys not receiving regular service would become more expensive, but still functional.
Together with this, permit the player to purchase obsolete equipment (after the "retire" date) with a cost increased by the number of years out-of-date. You want to build a 1840s engine in 1940? No problem, we have the blueprints, sir, but it's going to cost you a pretty penny and it won't have much perfomance, but if that's what you want, yes sir! And if you don't give it lots of maintenance, it's really going to set you back!