Great diagnosis! And I'm glad your ZyWall had the ability to tweak the QoS to make the difference.

I don't know if you're terminally interested, but the team at www.bufferbloat.net has devised the fq_codel algorithm that typically only shaves off a few percent from your upload and download bandwidth to control bufferbloat (instead of the ~20% decrease you used.) I don't know if it's available in the ZyWall, but you could also contact their support line to see if they're going to embrace it. (See http://www.bufferbloat.net/projects/cerowrt/wiki/What_to_do_about_Bufferbloat for details.)