The only workaround I’ve found so far to the “every train uses the same platform” issue is to make a reversed line. Let’s say you have two trains on a line between two cities. They’d share the same platform every time (causing one train to hold if they’re right behind each other)
But if you create a second line with the two stops in opposite order, it’ll pick the other platform in both ends. Tell either train to go to the other line and after a period of adaptation (changing tracks, passenger amount recovering) you’ve got a two platform system.
I have no idea how well this works in practice with say 4 platforms.