> To implement progress reporting, it means you are able to know the time a task would take to run upfront, no?
No. You just need to know the total number of steps and what step are you currently on.