So found the issue of the ballooning TIME_WAITs: actually closing the connection does a hard throwaway of the socket. To reuse them I need to simply read and throw away the response data.