It was very slow at first, and the key was helping him do what he wanted to quickly without having to mess around too much. He just needed a short feedback loop. His attention span was pretty small, but he was really into it. Scratch Junior on the iPad was a good way to start before moving to the computer with the mouse and keyboard. If he wanted to do something and I didn't know how right away, I'd figure it out later and then next time we sat down I could show him the easy way to do it.
After a while he started learning more and more and eventually played with every block to see how it worked. I also showed him how to look at other projects in the community. When he got farther along, this really helped him. He could see how others built platformer engines and other things, and then adapt them to his own projects.
I had the same idea as you with making a plan, writing it down on paper, and then going to the computer. This really didn't work. He just needed time to play and explore with the tools and get better and better with them until they became natural. Now, for more complicated things, he will write down notes on paper, but he still just goes at it on the computer for a lot of problems.
Finding the next step after Scratch was a challenge. We did some JavaScript together. He would understand it if we walked through it side by side. He could modify some of the code, but it's really asking a lot to get up and running with HTML, CSS, and JS along with a console, and editor, and browser to debug. It's too many moving parts.
So I worked on finding an all-in-one IDE tool for him. We tried Unity which was too complicated. PICO-8 which was close to being a fit, but a tough transition from block programming to typing out code. We tried Fuze4 on the Switch with a keyboard, but never went past the basics. Ultimately, we found GameMaker Studio from YoYo Games to be a great next step. It did take some effort, but they have block programming and some similar concepts to Scratch. It is more advanced and somewhere between Scratch and Unity, but it has stuck well. He is experimenting and building more and more complicated games. He is constantly asking for game ideas and wanting to share how he programmed one thing or another. I'll give him ideas by mixing together concepts from different games. Sometimes he'll just have fun re-implementing a game he saw a YouTuber play. Right now, he's building his own Snakebird. Listening to how he solved things really keeps him excited about it.
A couple months ago he really impressed me. He wanted to make Minecraft mods so he searched for some tools, ended up finding MCreator (https://mcreator.net/), downloaded it, and got it running all on his own. I've looked into it a little since, and this is a really great next step if your kid wants to build Minecraft mods. It's like Scratch for Minecraft mods. Block programming etc. It's open source and looking for contributors. Check it out.
He'll also get into anything that has a level editor. He loved the editor for the iPad game Badland. He is really into Mario Maker 2 now. Now that I think about it, the Badland editor probably helped quite a bit in the transition from Scratch to GameMaker.
Another tip is make sure to set some time aside for creating. We used to do screen time and off-screen time, but my kids started to just watch their favorite YouTubers or play the same games (Minecraft and Terraria). So now we have screen time, creative time, and off-screen time. During creative time they can be on the computer or iPad, but only using a subset of programs that I've deemed "creative". For my 13yo, that's Gamemaker or MCreator. For my 7yo, that's using redstone in Minecraft or other educational type content. He has some music making apps he enjoys.
My 7yo and 13yo are a quite a bit different with this. My older son got into all of it very early and really enjoyed it. The 7yo doesn't have the same interest - and that's okay. I'm not going to force it, but I will nudge every now and then to make sure we've at least tried different things.