Well, I've learned something that should have been painfully obvious. I had the following configured for that SIP trunk to the Cisco router I mentioned:
context=from-internal
allow=ulaw
disallow=all
dtmfmode=rfc2833
host=192.168.169.2
insecure=very
ipaddr=192.168.169.2
port=5060
type=peer
The codec is defined by the "allow" statement. If you put a "disallow" after the "allow" it will negate the allowed codec. Well duh.
Swapping those around fixed the problem and making sure the trunk was in the proper context got me past the 404 error I was seeing also.
I'm now on a virtualized Trixbox and it sounds great compared to the previous install on a dedicated but older laptop!