Most pilots won’t tell you that “air traffic control delays” aren’t really ATC’s “fault”; these delays would be better termed “overscheduling delays”.
The vast majority of what the airlines and system term “ATC delays” are actually from a pretty simple supply-and-demand situation. There’s too many airplanes (demand) trying to land in a limited number of arrival slots (supply) at a given airport over a given time period.
Airports have what are known as “arrival rates”. A standard, one-runway airport with well-designed taxiways (including “high speed” taxiways) can safely handle, in good weather, around 60 operations an hour- one per minute.
This can be 60 landings in an hour, or 60 takeoffs in an hour, or 30 of each, or whatever combination you want to come up with, but that’s about the limit.
(This is a bit of an oversimplification- with really good design, you can usually depart faster than arrive, but bear with me for now.)
So say you’ve got this airport, and say it’s got more than enough gates for all the airlines and planes that want to use it. The only limiting factor is that 60/hour number, right? Yeah- until crappy weather shows up. Now they can only land 30 planes per hour.
Unfortunately, the ATC system- run by the FAA- does not regulate how many flights can be scheduled into an airport. (That’s what deregulation gave us.) So the airlines that operate in there all schedule as many as they think they can get passengers for.
So during this hour, the airlines have scheduled 60 arrivals, but only 30 planes can land because it’s a cloudy, rainy day. What happens to the other 30 flights? They get delayed. And who delays them? ATC. And what do the airlines call these delays? “Supply and demand delays”? “Weather delays?” Nope.
But the reality is that they’re overscheduling delays. If the airlines and/or the airports would limit the number of flights to the BAD weather limits, the number of delays in the system would be massively shrunk.