When configuring throttling for a matrix job, I assumed (and wanted) the throttling to apply the overall matrix as a whole, including all child jobs. However the result is throttling is applied to each child job.
In my case, each jobs requires an external resource that cant be shared across jobs. I've allocated each child its own resource so all children can run concurrently. It works great until two matrix jobs try to run at the same time, then they stomp all over each other. Using the concurrent throttling plugin which helps but now only one child job runs instead of one matrix job, so its much slower than necessary.
In general its probably ideal to be able to configure throttling at both the matrix and child levels. Though applying throttling at the matrix level only seems like an improvement to me, as its more intuitive and just as useful.