I built a scheme prior to "Ghost Block" with a virtual block and debounce timing that works the same way.
I had the same issue.
I solved at "safe section" meeting points using a virtual sensor for "Allocation Hold" specified in the current transit step of the waiting train.
I used LogixNG to control the "Allocation Hold" sensor.
Whenever the "Ghost" or my "turnout occupied" sensor is active, the "Allocation Hold" is set active.
When the "Ghost" or my "turnout occupied" sensor goes inactive, LogixNG makes "Allocation Hold" inactive after a five second delay.
"Allocation Hold" will prevent allocation and thus the turnout action until cleared.
The caveat is that "don't stop the train with the last car within the turnout's fouling point".
--
Ken
NYNH&H, Old Colony Division, Cape Cod Branch (1949-1959)
Loconet * JMRI 5.11.5 * OSX,Win10,Ubuntu
Blog: ?
Youtube: