Justin, this is awesome! The overhead of websocket is also surprising when all layers are considered including TCP Frames http://tavendo.com/blog/post/dissecting-websocket-overhead/
That reminds me of a related point: The number of TCP frames can be considered more important than the number of bytes-per-frame when it comes to network performance. Most message exchanges, whether over WebSocket or HTTP, will occupy a comparable number of TCP frames, even if HTTP uses more bytes for the headers.