Eight tasks with uneven cost (short and long bars), four workers. Static hands each worker a fixed block of two tasks up front. Dynamic puts every task in a shared queue and lets each worker grab the next one the moment it's free. Both run on the same clock — watch which one keeps everyone busy.
Why dynamic wins: with static, one worker draws the expensive tasks and everyone else finishes early and sits idle (the empty space on their tracks). Dynamic self-corrects — fast workers keep grabbing more work, so nobody is idle and the whole job finishes sooner. Nobody had to predict which tasks were slow; the queue figured it out. This is exactly a job queue feeding an autoscaling worker pool.