Beyond executing asynchronous tasks, which opens up a lot of possibilities, it is sometimes useful and necessary to get the status of these tasks.
For example, you could use the status to check the time elapsed on each stage of a task. You should also think about logging and monitoring.
This recipe will show you an easy way of doing this.