Task Execution with Cancel Logic
Is there a better way of doing Task cancellation than the one I implemented


There's no task cancellation implemented here. By passing a token to Task.Run you just make the returned task IsCanceled equal to true in case it cancels itself (without, it gets IsFaulted by the OperationCanceledException). But you need (at least) to pass the token to DoSomeWork, because that has to check the token and cancel itself.

Task cancellation works through cooperation of the to-be-canceled task and has nothing to do with Thread.Abort.