did some rudimentary machinery to make sure that slow async tasks don't end up overwriting newer widget updates