Clive,
How about the following:
Physical Interfaces -> Line -> InboundCallRoute = {sp1(1xxxxxxxxxx)}
Note this there is NO "ph" in the inbound call route. All calls will be forked over to the sp1. As long as the sp1 is offering only one voice channel you might get the behavior you are looking for. If you are talking on the sp1 when a PSTN call comes, the caller should get a busy tone. (I think)
Note that sp1 can not be GV since it offers 2 voice channels, and I think you will loose the original CID.
An alternate way which may preserve the CID is to use the OBiTALK service. I'm not sure about this one. I think passing CID is only for OBi->OBi/OBiAPP. I'm not certain about PSTN->OBi. You will need to test it.
Physical Interfaces -> Line -> InboundCallRoute = {pp(200xxxxxx)}
Voice Services -> OBiTALK Service Settings -> InboundCallRoute = {sp1(1xxxxxxxxx)}
How about that a double forking strategy. I don't even know if that's possible. On paper it looks good.
In any event the phone attached to the OBi should ring giving you the same call experience or ring busy to the caller. Let us know if it works. I'm curious.