Task Wrappers for starting operation only if previous task has finished
I think you might by overengineering it. Have you tried the Task.ContinueWith method which


  Creates a continuation that executes asynchronously when the target Task completes.


There are multiple overloads that let you specify a lot of options with the TaskContinuationOptions enumeration.