But the permit will allow or block for asking questions. There already exists a permit for that. You want to modify how the permit is obtained. In that case, you might be interested in overriding qa_permit_error(). I wouldn't do it... it is quite a core function. So every time the "permit_post_q" is checked and would return a pass your override will catch it and perform the extra processing.
Alternatively, if you want to add a new (redundant) privilege to be displayed in the user profile, you can do that, again, with the layer, dynamically adding the permit row where you want it.
Regarding setting the level (in a combobox) the user needs to bypass the barrier, that's just a matter of creating the admin option field. You could hardcode that part anyway.
Specifically answering your last question question. There is no standard approach to extending the permissions. The recipe is half a spoon of knowing Q2A and half a spoon of creativity :)