v2:
- Add a separate test (which also tests various conditions under which an async send may be cancelled); - Handle those various conditions so the background send is not cancelled; - Fix CancelIoEx() return value in case there is nothing to cancel (unrelated but trivial and avoids leaving misleading todo in test).