Let's deal with the 911 function first. I believe that you have a telco or equivalent on the Line Port which provides a 911 service. You have GV on sp1 (via FreePBX?) which does not provide a 911 service. The only option for a 911 call is to send it out from the Line Port. The OBi110 does this by default as follows:
Physical Interfaces > PHONE Port > DigitMap:
([1-9]x?*(Mpli)|[1-9]S9|[1-9][0-9]S9|
911|**0|***|#|**1(Msp1)|**2(Msp2)|**8(Mli)|**9(Mpp)|(Mpli))
Physical Interfaces > PHONE Port > OutboundCallRoute:
{([1-9]x?*(Mpli)):pp},{(<#:>|
911):li},{**0:aa},{***:aa2},{(<**1:>(Msp1)):sp1},{(<**2:>(Msp2)):sp2},{(<**8:>(Mli)):li},{(<**9:>(Mpp)):pp},{(Mpli):pli}
The highlighted rule in the Phone Port DigitMap accepts 911 as a valid number. The highlighted part of the rule in the Phone Port OutboundCallRoute routes 911 direct to the Line Port with no further processing through digit maps. This makes 911 a special case avoiding any delays or possible conflicts. That's a long rambling way to say leave the 911 functions at default. This assumes that I understand your setup correctly.
With your info, I would now suggest a config as follows:
Physical Interfaces > LINE Port > DigitMap:
(<**1>[2-4][02-9]xS4|[3-8]11|[2-9]xxxxxxxxx|1xxxxxxxxxx|011xx.)
This will send any three digit numbers starting with 2 to 4, but second digit cannot be a 1, out on sp1. The S4 provides a four second delay to allow ten digit dialling starting with 2 to 4 to work.
This will allow three-digit numbers starting with 2 to 8 when they arrive at sp1:
Service Providers > ITSP Profile A > General > DigitMap:
([2-8]xxS2|1xxxxxxxxxx|<1>[2-9]xxxxxxxxx|011xx.)
I've deleted some rules that are not needed. The "xx." rule is a "catch-all" for number formats that don't fit the other rules, but if you have all formats covered, then you don't need it. It slows down number processing.
QuoteEverything else (x11 and 10 digit dialing) needs to go out my PSTN line first, if thats "busy", then go out GV.
By default the OBi does not "fail-over". If PSTN is busy, then you will get a fast busy signal or announcement saying no route is available. "Fail-over" can be made to work using Trunk Groups. This adds a level of complexity. I suggest that you do a search on this forum for "Trunk Groups" and post back if you want to go down that road. Maybe get the above config working as you want first. If PSTN is busy, then you can always dial **1 followed by the number to use GV.