Unfortunately Progress as mentioned is reset as soon as the status is updated to anything other than InProgress.
A work-around could be to set a progress attribute in Output and change Transaction Status, you can use this to pick it up and work with it.
If you wish to delay this at a given level of progress, you can also Postpone Transaction just after the setting the status and it will retain the Output table. However, you can’t extract the Output table from the QueueItem object from the VB.net object they’ve made. However you can use the API to extract it as follows in the HTTP GET request Orchestrator activity:
"odata/QueueItems?$filter=Reference eq '<<<insert reference value here>>>'"
Then deserialize the JSON using the UiPath Web Activities module then filter down to Output using:
jsonDictionaryDeserializedVariable("value")(0)("Output")("<<<Output field value>>>")