I in fact have bonded interfaces on the laggy server. When I checked the bonding config, I realized a while ago I had changed from balance-rr / mode 0, to 802.3ad / mode 4. (I did this because I kept getting "bond0: received packet with own address as source address" when using balance-rr with a bridge interface. The bridge interface was for using KVM.)
See the comments about mode 0 in this thread, http://lists.centos.org/pipermail/centos-virt/2014-March/003720.html in particular http://lists.centos.org/pipermail/centos-virt/2014-March/003733.html
Like the Serverfault poster, I have an HP TrueCurve 1800-24g switch. The switch is supposed to support 802.3ad link aggregation. It's not a managed switch, so I (perhaps incorrectly) assumed that 802.3ad would magically just work. Either there is more required to make it work, or it's implementation is broken. Curiously, however, running my bond0 in 802.3ad mode did work without any issue for over a month.
I'm unfamiliar with these switches. The Cisco switches we use, all managed, require explicit configuration for LACP/802.3ad.