With the suggested method you could skip a production cycle by unlinking a producer from a consumer. Due to the setTimeout the fluctuations propagate through the factory just as they would with resource nodes flying around.
Of course the details are a bit more complicated (you don't want to miss resources or produce too much due to the abstraction), and I see why you went the easier route ;-)
Yeah, multithreading is often a pain. OTOH the gains can be enormous.
Yeah, multithreading is often a pain. OTOH the gains can be enormous.