Ease of Controls
When I first started the game, the idea was there, but the average player had difficulty with the rotation controls I initially had on by default. Those are still an option in game for people who want that challenge, but after several months of testing new control schemes for player rotation I managed to automate the player rotation enough that the rotation controls are defaulted to being off.
Some games are literally built by having unintuitive control schemes, but if that isn't the core of your game, we generally want as few buttons/keys involved as possible so the average player can pick up the game, but to have those few buttons enable deep/precise techniques. The best way to explain it is to just watch Mark Brown's explanation of versatile verbs. I removed rotation controls, but a lot of what you could do before is still possible just out of the jump button. You can wall jump, and push stuff around still, and jumping still pushes the block you jumped off away from you.
As a general rule, you either want to commit to the difficulty of the controls being the core of the game, or to commit to the other half and get the difficulty of the game to not come from the controls at all.
My level difficulty has gone up and down, hitting both extremes along the way. After playing my own game for a year and a half almost every day, I've gotten incredibly good at it. I can basically speedrun the entire 2.5 hour game in 20 minutes, which makes testing with friends and family the only true way to know how challenging a level is or how long the game actually takes to beat.
When I started the difficulty sort of came half from the controls, and I had to add a bunch of simple levels early on to give the player time to get used to them, but as I automated the rotation controls, the player's learning speed improved dramatically and many of those early levels weren't necessary. Luckily nothing in level design is ever wasted, as I took some of the better parts of those levels and used them to strengthen the others.
There are lots of guides out there to teaching a new player through gameplay, which is what I do throughout the game, but there isn't a lot of guides for turning average players into veterans. Now that I'm nearing the end of the game I get to make truly challenging levels, but as someone who's played a lot of my game, I can tell you it can be hard to not have that itchy trigger finger to accidentally make super hardcore stuff instead of continuing a difficulty curve until the player is ready. This is why testing the game with friends and local developers is the core of my game development practice.
Generally I make levels with a purpose, many of which start out with less options to win than people expect of my game. Then I sand off the edges as I watch people come up with interesting ways to beat the level I hadn't thought of. So often levels start out smaller with a few extremely challenging areas, but as the level takes mold from player testing it tends to grow and the difficulty is more spread out.
Difficulty vs Punishment
Difficulty is not the same as punishment. As a general note, if you want to induce tension you must have punishment for failure, which thrills some players. If you wish to have no tension you must have no punishment for failure for a pure funhouse style game. Most games are somewhere in between. Both punishing games and non punishing games can be engaging. My game has a 0.25s respawn time and the music doesn't reset. I want you to get right back into the game with little punishment. However in a similar vein, the later levels are larger, and when you lose a larger level you lose more progress. I've seen some of the later levels induce a lot of tension. This is intentional, as the later levels are meant to be a challenge you should feel good for mastering.