I really like this topic!
We faced this problem several times and we didn't find a standard pattern to provide a solution to it.
Anyway, I will try to reply to your questions:
I would say, it depends on the task the user is working on. If I am in a process that provides an output such a PDF, I expect this operation it will be very fast and I don't need any system info about time and size fo the output. If I am in a process that executes background tasks such a report about the last year of activity on my bank account I expect:
- to have system information about how much time is needed to download
- to know If I can perform other actions while the download itself is complete
- to receive a notification about the download action once is done