It's a simple heuristic. If I can leave my employers in a good state, I go ahead and job hop. I stay until the project is done, and then I feel ok leaving or staying and take on the next project. Very often there is no next project lined up, so I am compelled to look around.
I think if you have a habit of abandoning jobs in the middle of projects, leaving your employers holding the bag, you are a flake and a risk to hire.
I am working on a project right now(in healthcare) that I thought I could finish in a year's time. After every meeting, I think to myself that I'd be lucky if I can finish it in a decade because of bureaucracy and incompetence. What then? I am not going to stay until the project is done, I am mortal after all!