When you dial a number it is validated by the Phone Port and Primary line's Digitmap.
Then the Phone Port OutboundCallRoute routes the call.
The way you coded the speed dial, it is processed the same way.
There isn't a rule in the DigitMaps that match your speed dial string, so the call fails and you get a busy.
Code it like this: li(18005551212,,,,,,1234)
Now the digit maps and outbound route processing is bypassed and the call is routed directly to the Line port.
I forgot the duration of each pause, but it's not long and you will need a bunch of them.
Don't use "#".
These pauses ONLY work on the Line port!