The way that the global concurrency setting is applied in conjunction with maxWorkers set on individual tasks is confusing.
What I expected was that if I set concurrency to 5, then it would run up to 5 jobs in parallel. If I also set maxWorkers: 2 on a given task, it would additionally constrain the number of parallel workers on that task to be 2.
What actually happens in this case is that it will create two worker pools - one of size 3 and one of size 2. So the max concurrency of tasks other than the one with maxWorkers: 2 is actually 3 even if there are no tasks running in the maxWorkers: 2 pool.