This is a admittedly a shot in the dark, but setting the DNS settings in Asterisk to the DNS servers on the trunk you want to use for your voice traffic might work.
Is there no way of routing SIP/IAX traffic in the router itself ?
SIP trunks are just IP traffic, so if you configure your routes carefully it is possible but this is not a simple task, specially if you don’t know what you are doing. At the same time you have a given external IP and all traffic from the outside is going to come in on that IP and route (which is out of your control). So any connections coming in on that will NEED to return back out on the same path.