The intention on these methods is hooks for subclasses to customize. Progress is one of the bigger ones. For operations that support progress reports, those reports will be custom for that operation. This hook gives the subclass the task so it can get any information it needs to render the progress report for that operation.

Same rationale for the above comments about why task is passed in an never used. They are intended to be overridden if the subclass wants to customize the messages, and I figured having the task may prove useful in determining which task is being displayed.