QoS works fine when configured correctly -- we use it here with good success. But very few people understand QoS, and therefore it can be very difficult to set up.
Edit: In this specific case, though, it's mainly upstream QoS that is needed, and that part is almost trivial to set up for the specific need in this case.