Each runs fn for each of n jobs, at most workers at a time, and returns the first error, which ends the run: jobs not started stay so, and running
ones see it as their context's cause. A run the caller's context cut short returns that cause, never nil.