Agreed, time to start watching the logs.
running
asterisk -rvvvvvv
etc gives you more and more debug details on a calls logic. The more 'v's the more verbose it is. Happy hunting.
It should work, i've used such call logic without issues in the past (routing certain DID's certain places as an example)