After some testing, I figured out what's going on. I tried playing with "Require same depot" disabled because I was hoping that trains would find the nearest free depot. Despite what the tooltip says, however, that's not what they do. The trains are given a schedule with the exact coordinates of the depot station they're trying to get to - which might not be free by the time they get there. Because these are coordinates and not a station name, however, they cannot redirect once the schedule has been set. The only difference the "Require same depot" option makes is which depots are available to schedule to.
I would recommend not hard-coding the depot's coordinates in the train's schedule. Instead, give it the depot station name directly, and let pathfinding do the rest. If a depot that the train is heading for is taken up in the interim, it'll automatically path to a different one - that's a thing Vanilla trains already do with stations sharing the same name. There's no need to reinvent that mechanic for depots, I think. The worst I can think of with this approach would be a train getting caught in perpetual ping-pong between farawy depots, but that on the player to work around. It's why that's an option.
As of right now, I don't see a reason to disable "Require same depot", as that creates not-infrequent depot conflicts that I then have to manually resolve.