fixes cancel bug and adds better wait estimate