Fix stale unmask bug in the code for liftMask

The mistake was pushing the original base monad unmask operation
through the entire pipe unmask operation via unsafeHoist as any wait
or yield inside the pipe unmask operation results in switching to
a new base monad mask and invalides the previous unmask operation.