Today, the scaling thread pool executors have unbounded queues by default, and the fixed thread pool executors can have unbounded queues if their size is set to a negative value. Unbounded queues are dangerous and should be eliminated. I think we should remove the ability for any of the thread pool executors to have unbounded queues but maybe (some of?) the scaling thread pool executors should get a caller-runs rejection policy?
Relates #14448