Thanks for posting! The dial plan works with a "best match" algorithm. Also, there is a standard '911' dial plan entry for emergency calls, so it appears we have a few things seeing this as the best match. We can at least eliminate the first two examples regarding '91' and '9' matching as emergency calls by adding the following to your configuration.
voice timeouts named-digit-timeout long_wait 16
voice dial-plan 20 extensions 9 long_wait
voice dial-plan 21 extensions 91 long_wait
This may also clear up the latter two examples you mention. If if does not clear up those issues, we will likely need more details about why types of call flow trigger these events. If you capture the following debug output leading up to these events, we should be able to isolate the issue.
debug sip stack message
debug voice verbose
debug interface fxs