It could be the Nagle algorithm - setting the TCP_NODELAY socket option on the sender would be one way to test.
sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
It's an interaction between delayed ACKS and the Nagle algorithm, mentioned on the Nagle algorithm wikipedia page.
I'm learning a lot this week. Thanks again.