After you set up the route patterns to include the provision of the outside dial tone after the 9 is dialed, users get the outside dial tone when the second digit was dialed instead of after the 9.
This mostly happens because the system does not know that you want to hit the Patterns with the outside dial tone. It is possible this happens because there is another Route Pattern or an Extension that also starts with 9, and then in this case, the server does not provide the outside dial tone. So when the user goes off hook and presses 9, the system does not play the second dial tone until the second digit is pressed to make sure that user dials something that does not match anything else than these patterns that provide second dial tone.
In order to resolve this issue, ensure:
There are no extensions in the network starting with 9.
All of the Route Patterns that start with 9 provide an outside dial tone.
If this issue is still not resolved, check the Route Plan Report. Look for a Translation Pattern that starts with 9 and that does not have the Provide Outside Dial Tone checked.