If people are using the async runner then they have to jump through some hoops (`runner.task.print_stack()`) to find out what went wrong. It would be good if we could provide this to people directly, but I'm not sure how easy is this given the async stuff