If it can be of any help, I found that using Jack for everything is much easier than juggling with ALSA card numbering and priorities and stuff.
I have qjackctl in my ~/.xinitrc, and it's set up to start jack automatically (with the last preset used).
When I use the USB audio interface, I simply stop jack, load the proper preset, and start jack again.
I never thought of automating the selection, to be honest; I use different USB devices, and selecting the right one manually is quick enough.
I have no need for Pulseaudio, I tried it for a while but it was only an annoyance for me.
I set up ~/.asoundrc to use the jack plugin by default, so non-jack software can be routed through Jack (Firefox, for example):