I changed the behavior to be in line with a typical use case: the widget is here but invisible. At a certain point the application call start() to make the widget visible and animated. Once the progression of the long task is done, the application call stop() to stop the animation and hide the widget. And so on... Eventually the application could call stop(true) to stop any animation in progress and remove the widget from the dom.