Starts executing an idle Future
NB: Must only be called once
Use reset to restart the Future
void start() { // can only start once if (peek() is! AsyncIdle) return; _init(); }