Best practices for background activity notifications

I'm working on an app that does some manipulation and heavy lifting of user inputs behind the scenes while the user can go on to do other things. The timeframe for notifications happens seconds to minutes after the user interaction, not hours/days/etc. So I'm looking at session based notifications, not an email or inbox type message.

We currently use a "notification shade" that also provides messages like "you're inactive and will be logged out..."

Also, we force users to manually clear/close the shade to remove it from the screen.

enter image description here

What are the best practices for notifying a user of progress/completion of those actions?

  • Are there preferred locations to display the notification?

  • Should they expire automatically? (timeout vs wait for acknowledgment)

  • How to handle notifications after a user has left the input screen/process?

  • How to handle event compounding? (eg process 1 completed, process 2 completed) Do they stack? Does #2 replace #1?

Any guidelines or links to particularly good examples would be much appreciated.