when reading on a streamdns socket failed due to timeout, but the dispatch was still waiting for other responses, it would resume reading by calling isc_nm_read() again. this caused an assertion because the socket was already reading. we now check that either the socket is reading, or that it was already reading on the same handle.