Hence, the optimum schedule is NP-Hard.
The simplest solution to job-shop scheduling is to have slack in the system.
See https://www.johndcook.com/blog/2008/10/21/what-happens-when-...
[1] The contractor has other commitments. Each subcontractor has other commitments. Each material supplier has other commitments. It's true all the way down to the turtles being dug out of the ground. Having people waiting around for work to do, means that work can be done when it can be done. If the people aren't there waiting around, they are off at another site doing something that can be done for a few hours/days/weeks/months.