Currently there are two issues to me.
Network trains don't know how to use bi-directional parking tracks.

Network trains sometimes find a long going-around path to a bi-directional station, usually when there is a loop in the railway and the station is occupied by another train. This might happen to line trains too, but we can add a waypoint to the schedule to avoid it.

Possible solutions I can think of:
1.
Add a direction condition to waypoints or make it optionally directional. When a train tries finding a path to it, it must match the direction, no restrictions to a train finding a path pass it unless it matches another condition. This helps better routing trains through bi-directional tracks.
Or just add a specialized directional "parking spot".
-
- Add a "next stop" condition to waypoints so we can finely tweak the routing for network trains. A simple use case: Add a pair of denial to the mainline by the side of a bi-directional station, every train going to the station shall not pass the restrictions to go around and enter the station from the opposite side.
- Or just imporve the path finding to avoid going around. For example, don't pick an alternative path that goes in the opposite direction to the shortest path. Such path is definetely wrong. I can't imagine anyone build a useful bi-directional station with two holding zones from one direction leading to different sides of the station.
Avoiding bi-directional tracks migrates some issues, but bi-directional tracks are fun :P