A meaningful downside is a resource cost equivallent to what it would cost to get the item in the first place. Like every 100 crafts a rankup is guarenteed with 1% quality.
This is not something modules can do, at least not in-engine. The closest I could think of implementing such a thing would be for a mod to monitor all craft events (EDIT: I just checked the API docs and there does not even seem to be an event for this, so this entire idea is probably impossible), check the modules in the crafting machine, and increment a counter, keeping track of each one independently, and then modifying the output of the machine as necessary. However, not only would that be an ugly hack, and a horrendously unperformant one at that, it would not even reliably work because the item could just as easily have been removed and put onto a belt or something (at which point it cannot be distinguished from any other instance of that item, bearing no marker of where it just came from) and so there would be no item to bump the quality of.
There is actually a similar mod that has these problems making captured spawners give matching-quality eggs; it too has a ton of edge cases where it fails to properly increment the quality, not to mention performance overhead, and for the same reason. And that mod only has to track captured spawners, not all crafters.
A larger departure from your idea, as well as the way quality is experienced (and completely forsaking modules entirely), is to just add new, more expensive recipes that output one tier higher quality than the input. But that is so far removed from vanilla in feel that it has its own problems.