`check_complete` is tricky because it is one of the few methods that we allow to run outside of the main Dagobah thread. As such, we want to be really careful to make sure we never end up with two versions of it running at the same time. `_start_check_timer` should only be called *immediately* before the function returns. This should move down a few lines and be right before the return statement.