Keep in mind that, from a practical standpoint, by far the biggest difference between a core dev and any other contributor is that a core dev can merge their own changes. Basically everything else a core dev can do, everyone can do.
Sure, there’s voting for the steering council and attending the language summit, but participating in things like that doesn’t have nearly as much impact on Python and its community as you can already have without being a core developer. The title of “core developer” and the related associations are secondary and at best may improve one’s personal state of mind.
From my perspective, a core dev cares much more about how to help Python and its people than in having the title and commit rights. So getting the commit bit is almost a natural consequence of that focus, rather than the main objective of anyone I’d consider likely to be a core dev. (Also, commit rights only relate to contributions to CPython’s code. There are many other important and fulfilling ways to contribute to the Python community.)
Note the “almost” in “almost a natural consequence”. As you pointed out above, there are clearly many valuable contributors that aren’t core devs but care about Python a ton and put in the effort to help. Why aren’t they core devs? It’s a people problem and mostly about time. (And some contributors aren’t interested in commit rights.)
It takes time and opportunity to build up enough trust with the core devs. They need to trust that you aren’t going to mess Python (and its community) up! Core devs are mostly volunteers and all have limited time. So it can take a while to interact enough and build those relationships, not to mention finding time for whatever mentoring is needed. It’s a frustrating problem for core devs (and probably for any open source maintainer).
FWIW, I talked about a lot of this stuff in my keynote at PyCon APAC a month ago:
(If you watch it, apologies in advance for my delivery.)