While this is all true, I think you’re missing something significant. Site activity gives the background and opportunity for competent moderation, certainly. So it is necessary to have a good investment in the site’s actual normal operation, and ideally not just in the past, but ongoing (which no one has so far mentioned, I think).
However, site activity does not, in itself, motivate moderation (since many, even most active SE users don’t invest much time in moderation), nor does it guarantee that someone will learn sound judgment from their experiences. In part, this can be thought of like the difference between the ten thousand hours of a master, and the single hour repeated ten thousand times that marks the inveterate novice. You can spend a long time answering questions and still never build a generally useful mental model of what questions should and shouldn’t be answered. If you don’t care about moderating correctly, you won’t put in the effort to do so, and that’s not the same thing as answering correctly (much less asking skillfully).
So, ultimately, I believe it’s necessary to consider proven moderation ability as well as content contributions. Both are important: one shows the continuity with the primary community of asking and answering, the other shows the care invested in moderating well.
The simplest way to do this might be to have a set of standard post metrics for different levels (perhaps 15 posts with at least 80% positively Wilson scored, then 50, then 125), then match those to appropriately scaled requirements for accepted flags, edits, etc such that each new tier of a specific privilege requires meeting both matching requirements. (In each case, it’s crucial to require the user being credited for a successful moderation action be the one who initiated the action, not simply agreeing with suggestions they see. Independent flags on the same post can each count for their respective users, since there’s no way to see flags, but e.g. adding a close vote on top of existing close votes can never reliably signal sound independent judgment.)
I would also like a way to require ongoing participation, but I’m not sure how to do that well, since the granularity is a problem. Maybe some low number of (well-received) posts in the last 6/12 months, increasing slowly with each tier, perhaps even starting at 0 for the lowest tier.