Try:
{(Msp2):sp2},{911:sp1},{933:sp1},{([19]900xxxxxxx):},{(18(00|88|77|66|55|44)xxxxxxx):sp4},{([1-9]x?*(Mpli)):pp},{(<##:>):li},{(<#:>):ph2},{(<**70:>(Mli)):li},{(<**82:>(Mbt2)):bt2},{(<**81:>(Mbt)):bt},{(<**8:>(Mbt)):bt},{**0:aa},{***:aa2},{(<**1:>(Msp1)):sp1},{(<**2:>(Msp2)):sp2},{(<**3:>(Msp3)):sp3},{(<**4:>(Msp4)):sp4},{(<**9:>(Mpp)):pp},{(Mtg1):tg1}
You missed changing Mpli to Mtg1. This caused 8 & 9 prefixes to fail.
This is how a Trunk Group works:
(Mtg1):tg1 will route any number matching the TG1 digit map to TG1
When the Trunk Group gets control it processes the Trunk List left to right trying to route the call.
If the call fails OR the number doesn't match the trunk digit map the trunk is bypassed and processing skips to the next trunk in the list.
If you dial an 8 prefix number, it doesn't match the SP1 digit map and processing skips to SP3.
The number matches the SP3 digit map and is then routed to SP3.
You had (Mpli):tg1
(Mpli) doesn't contain a rule for 8 or 9 prefixes, so the call wasn't routed to TG1.
________________
The Phone digit map validates the dialed number.
The TG1 and SP1 digit maps are included by (Mtg1) and (Msp1)
When you dial a 10 digit number, rule <1>[2-9]xxxxxxxxx in (Msp1) validates it and adds a "1" prefix.
The outbound call route will see an 11 digit number.
The 10 digit 800 rule was redundant and removed.
_________________
I don't see anything that will cause a delay on SP4. I'm guessing it's the GV account.
________________
You can define a free tollfree provider as a Voice Gateway for 800 numbers.
VGs share an SP trunk with another provider.
You must use a non-GV SP for the VG.
Voice Service -> Gateways and Trunk Groups -> Voice Gateway1
Name: Tollfree
AccessNumber: sp1(tollfree.alcazarnetworks.com)
DigitMap: (18(00|88|77|66|55|44)xxxxxxx)
AuthUserID: 8005551212
AuthUserID Will be used for the outbound CallerID
You are sharing SP1 with Phonepower.
This might eliminate the delay for tollfree numbers.
{(Msp2):sp2},{911:sp1},{933:sp1},{([19]900xxxxxxx):},{(Mvg1):vg1},{([1-9]x?*(Mpli)):pp},{(<##:>):li},{(<#:>):ph2},{(<**70:>(Mli)):li},{(<**82:>(Mbt2)):bt2},{(<**81:>(Mbt)):bt},{(<**8:>(Mbt)):bt},{**0:aa},{***:aa2},{(<**1:>(Msp1)):sp1},{(<**2:>(Msp2)):sp2},{(<**3:>(Msp3)):sp3},{(<**4:>(Msp4)):sp4},{(<**9:>(Mpp)):pp},{(Mtg1):tg1}
________________
You can take this one step further and setup a Trunk Group for tollfree numbers.
Service Providers -> ITSP Profile A SIP -> TimerB: 8000
Voice Service -> Gateways and Trunk Groups -> Trunk Group 2
TrunkList: vg1,sp4
DigitMap: (18(00|88|77|66|55|44)xxxxxxx)
{(Msp2):sp2},{911:sp1},{933:sp1},{([19]900xxxxxxx):},{(Mtg2):tg2},{([1-9]x?*(Mpli)):pp},{(<##:>):li},{(<#:>):ph2},{(<**70:>(Mli)):li},{(<**82:>(Mbt2)):bt2},{(<**81:>(Mbt)):bt},{(<**8:>(Mbt)):bt},{**0:aa},{***:aa2},{(<**1:>(Msp1)):sp1},{(<**2:>(Msp2)):sp2},{(<**3:>(Msp3)):sp3},{(<**4:>(Msp4)):sp4},{(<**9:>(Mpp)):pp},{(Mtg1):tg1}
If a tollfree call fails on VG1, it will failover to SP4.
If a call isn't completed within the value of TimerB it will failover.
The default is 32 seconds.
I changed it to 8 seconds.
You don't want to make this value too small, you might get false failovers.
After you get this working, you can test failover by making this change:
Voice Service -> Gateways and Trunk Groups -> Voice Gateway1
Name: Tollfree
AccessNumber: sp1(192.168.1.199)
Dial a tollfree number and it will failover to SP4 after 8 seconds.