IMO, things should be taught whenever the student is ready to learn and understand them. That is, having absorbed the previous lessons and having the foundational structure and experience to put the new knowledge to effective and proper use. The timing of this is dependent on the student's dedication and skills, and the benchmarks set by the instructor.
However, I am also a believer in some "time in grade" waiting periods at certain points along the journey. Like taking a pause during a mountain hike to appreciate the sights along the way, what it took to get there, and what it will take for the next leg up the slope.
The view of looking up the mountain at the path to come is different than looking down at the path already travelled. There are times that learning new techniques and concepts gives new insights on things already "learned." Ample time should be spent re-examining these things before going to the next level.
Depth of knowledge is at least equally important as breadth. And there is more to earning a new grade (especially more advanced ones) than simple, pure, technical skill.
Such pauses do not stop the learning process, but rather aids it in the long term. It goes without saying (and yet I will say) that withholding knowledge to extend time till advancement simply for commercial reasons for additional monthly fees is not admirable.
So, speed of learning should be tempered with patience and reflection.
For me and my students part of that pause is to not only practice it, it is to also teach and demo it to people who may not know it.
This put them into a place to have to think about it from usually a different perspective for the student.
As some who race up on natural talent and physical skill, cannot teach or work well with others, only do it at their speed.
This pause can give them some insight and the teaching can provide some insight on how to work with others .
Of course I agree with the other part as well of when the student is ready teach them a technique.