Refactored ProgressiveTask to use TaskContext