Firstly, are you imposing an ordering on the slices of experience which must be gained from each type of combat?
Just showing how they all add up. Hypothetically the "ideal" form of exp is usable all the way through. Meaning you could level with real combat all the way through I just don't think it'd be ideal or fun.
To sum up the priority of exp gain I'll use 100 points of exp to keep it simple. Lets say a fireball gives 2 exp per cast. The Mastery system (which is my next post) uses a set of conditions to catergorize the type of exp which is being gained. You can only gain 10 exp (or 5 cast) during practice. Next, you could gain up to 36 exp from missing a passive target. Landing on a passive target can generate up to 50 exp. Missing an active target can rally a total of 75/100 exp needed to level. This way you could gain 100/100 xp when landing a spell in active combat. The types of exp gains are just meant to keep the learning curve from being as steep and allow for alternatives for training other than risking your life consistantly while not learning how to or being comfortable with the use of a skill/spell.
The way I was hoping to get this going is by a series of "tags" on targets/conditions to be met after entering combat.
Something along the lines of "if target "type A" is a passive and target "type B" is an active target > then activating combat with range of target type A and missing/landing a spell counts as passive exp. Same goes while missing/landing a spell on target type B. The only problem I saw with this is if there is a target A and B within range during combat, whats to say you wouldn't gain passive exp while missing intended target B. I didn't think it too much of a problem as long as enemies are seperated well enough or passive targets flee from an actual fight when it begins. For "training exp" I figured lack of a target type A or B would be enough to trigger its condition.
Successful hits against active combatants give X exp
Successful hits against passive combatants give (less than X) exp, but this begins to fall off quickly once it has contributed to Y% of the level
Successful hits in training give (less than X) exp, but this begins to fall off quickly once it has contributed to Z% of the level
My thoughts weren't set in stone when it came down to the numbers but I definitely like your idea. It's better than fully cutting off the types of lesser exp. It might promote grindy behavior but its still viable if the numbers are tweaked well enough to not make it worth it.