I have been able to use the set_nativehandle_options() and, when called by this, calling WinHttpSetStatusCallback to intercept and process Winhttp callbacks. If I close the request handle in my callback intercept, I can cancel the HTTP/S request. Since I am closing the handle in the callback, there are no surprises for the WinHttp stack.
Give it a shot.
Give it a shot.