WSL on the host builds the 3 configs in parallel in ~103s (= one config) — the parallel design is correct. The 4-vCPU CI VM ran 3x make -j on 4 cores -> oversubscription thrash -> ~3x slower. Not structural / not RAM. Bump guest-cpu to 8 (job.py patches the clone VMX numvcpus); host is 10c/20t, this matrix is 2 VMs.