Engaging Context + Teachers
The key to teaching coding without being boring is to put coding into a context. It is critical to pick projects or subjects that are interesting to students (or to help them pick their own). Their interest in the project is what compels them to push through the difficulty of learning.
Then, setting the difficulty of coding lessons is really the same as in any other subject: the lessons must be in the zone of proximal development which also requires that the student be supported by an educator. I think the issue with many of the programs that you describe as “too easy” is that they are designed to work without the help of a teacher, so they inevitably fall into the “too easy” zone so as not to be out of reach of students.
Engaging context for coding projects plus teachers who support students as they learn are the keys to teaching kids to code.