for the loopback, give it a different IP subnet
Usually we use a /32 mask for that. Say your network has 10.0.0.0/24 and 10.0.1.0/24, then assign one more subnet 10.254.0.0/24 for the loopback of all devices. E.g. 10.254.0.1/32 for Router1, 10.254.0.2/32 for Router2...etc.
For QOS, it depends whether you want to shape outbound traffic or police inbound traffic. Also there are additional options on frame-relay traffic shaping. And as of 12.2 we can even have nested class-based policy-maps so that you can use shaping on the parent policy-map and CBWFQ on the child maps.
But....if you do this on low-end routers, your CPU utilization may burst above 50%. You can try it if you feel comfortable with this 50% threshold.
And by the way, WFQ seems to be the default queueing mechanism on serial links with <=2Mbps. It's just a little bit better than FIFO I believe.