This problem is totally fixed at 1.5. go1.5 adds a Request.Cancel channel, which allows for "race free" cancellation (8b4278ffb7). Our implementation relies on it to always cancel in-flight request.
8b4278ffb7