I wish folks building Task frameworks would provide a standard mechanism for tasks to signal their progress. I realize it might not be relevant here but I've noticed this gap in more general frameworks as well.
temporal.io supports task heartbeating. An application specific data can be attached to each heartbeat. The data is accessible from outside to display the progress in the UI for example. The data from the last heartbeat is also available to a task when it is retried.