Move scope exec timing to the scope execute function itself

This catches initial scope execution, which processQueue is not involved in.