After finishing any task/subtask and before starting the next one, go up the hierarchy at least two levels, and ask yourself—is moving onto the next subtask still the right way to achieve the higher-level goal, and is it still the highest priority thing to tackle next. Also do this anytime there is a significant unexpected difficulty/delay/etc.
Periodically (with period defined at the beginning) do this for the top-level goal regardless of where you are in the [sub]tasks.
After finishing any task/subtask and before starting the next one, go up the hierarchy at least two levels, and ask yourself—is moving onto the next subtask still the right way to achieve the higher-level goal, and is it still the highest priority thing to tackle next. Also do this anytime there is a significant unexpected difficulty/delay/etc.
Periodically (with period defined at the beginning) do this for the top-level goal regardless of where you are in the [sub]tasks.