Disregarding for a moment how much extra work this would require, let me pitch a concept here:
I’m in favor of the “two parts to each level” categorization approach; it may even be good to allow grammar to be part of multiple N-level categories, as, from what I’ve heard, different sources will classify different grammar points as belonging to different N levels. If two sources contradict each other, no problem! Just say it belongs to all of them… but check this out:
Imagine you had a second bar next to the JLPT level progress bars:
This could, essentially, be “N# Bonus” and you can opt-in (in config maybe?) to take lessons in these categories before moving on to lessons in higher N levels. If sources say that a grammar item is N5, N4, and N3, all contradicting each other, you could take the most commonly agreed-upon level-- say, N4-- and put it in the “primary” lessons for that level, but also put it into the “Bonus” category for N5. When you do this lesson, it can just count towards progress in each category that it belongs to. So if you worked through all the content of the N5 Bonus, you’d see a little scatter of “taken” lessons in a few of the other N levels as well, and have a small head-start on some of those N-levels’ content.