Previous implementation has two problems that fixed in this PR.
We now use best effort to cancel GRPC future and that shouldn't impact the return value of cancelled() that supposed to indicate base Task cancellation
We should only cancel GRPC future when base task state transition confirmed to happen.
Previous implementation has two problems that fixed in this PR.
cancelled()
that supposed to indicate base Task cancellation