Important change - we need to clear the _callback if we receive a Cancel() call. I think there must be some better way to get this done, let's see if I can figure it out...