In various combinations, release junction rule, give the AI driver a release junction instruction for every trailing point he'll pass on the way to the destination, set player engine priority to 1. Near as I can tell AI trains spawning from portals default to priority 2 and there's no way to change that, either way they set and lock the next switch ahead. Which means plan B also fails, don't matter how many signals are between him and the switch as soon as he passes the previous switch he sets the next one.
So plan C, variation on the fake/invisible switch idea, use real switches in the middle of each doubletrack section, or possibly near the ends. Spurs or yards coming off the doubletrack or a single crossover going opposite the direction of travel, the idea being to get one more trailing point switch between the triggered stop signal and the exit from the single track that he keeps locking. Obviously requires some planning, each passing siding ("loop") needs to be at least twice as long as the longest AI train used, and if the AI has already passed the mid switch there needs to be some way to give a stop indication at the other end. More triggers, I was hoping for less complication rather than more. Main thing is solutions that work on small routes will be too tedious to set up on big ones, which is why I'm using track direction markers for right hand running instead of all them "navigate via trackmark" things.