I don't think that can ever happen if you use libuv properly.
- You should allocate a new uv_write_t for every write to a handle. Do no reuse, free, move, or clobber it's memory until the write callback is made.
- Ditto for the uv_tcp_t handle; do not reuse, free, move, or clobber it's memory until the close callback is made.