What makes puzzle platformers challenging? What makes them good?

I'm a big fan of puzzle platformers - games like Portal 1 and 2, The Talos Principle, The Swapper, etc. - and I've logged many dozens of hours playing such games, mostly due to community-made puzzles. In fact, I've played over 500 community maps for Portal 2, and I've learned quite a bit along the way. Someone asked me an interesting question that really got me thinking:
When do elements that are individually passable become insurmountable or too convoluted when stacked together?
It's a great question, and I think the answer depends on a few factors: how many options plays have at each step, which options players are likely to actually notice, and what players typically think about each option. Every player is different, but that doesn't mean you can't estimate the qualities of a puzzle without players.
How many options does a player standing in the center of the room have?
An 'option' is an action the player can perform to change the state of the puzzle, and it can either have forward progress (they get closer to the solution), negative progress (they create more work for themselves), or no progress (the option isn't part of the puzzle currently). Moving two steps to the left isn't an "option" unless it changes the state of the puzzle (e.g. the player starts or stops being in the way of a light ray, or steps onto or off of a pressure plate). Placing an object at X, and placing an object a centimeter to the left of X aren't separate options unless they have different results. In the above image, the player has two neutral options and one positive option.
Why should the player press the pedestal button on the left at this point?
Knowing what the options are is only half the battle - the player has to actually understand what those options do for them. Players have a natural desire to avoid options that look like they would result in negative progress - you don't typically see players jumping into lava believing that it might advance the story. But sometimes, they do make mistakes, and misjudge options. This is where challenge comes from: looking for options and figuring out if they are good, bad, or neutral at each step of the puzzle.
Should you put the cube on the button, or take it somewhere else first? What's a safer assumption? Why?
There's two ways to solve puzzles: you can plan things out in advance, or you can evaluate your current options and pick the one that looks the best. Generally players use a combination of both tactics, so they start acting before they have the entire solution in their head, or even the entire puzzle. Sometimes it isn't possible to see the entire puzzle without acting, making it a necessity to just start doing things with little planning.
This ramp just leads to a bottomless pit, but it isn't there for decoration or aesthetics.
A puzzle is challenging when it is difficult to distinguish between forward progress options and negative progress options. Challenge does not come from not knowing what the options are, it comes from not knowing whether to even try an option in the first place. Brute force works as long as there are no trapping situations, but experienced players know that brute force is not fun, and thus they evaluate their options to determine which to try. Since every element of a properly designed puzzle will be used at some point, the question is when to choose options - what state does the puzzle need to be in for a normally negative option to be positive?
Quick, use logic to solve this maze on your first try without running into any dead ends or loops!
Easy puzzles make the options easy to distinguish, whereas hard puzzles make the options relatively indistinguishable. An analogy would be that easy puzzles have high contrast and hard puzzles have low contrast. However, there needs to be at least some contrast - otherwise the player is left with brute force. A maze has no contrast because all options look the same. An arrow on the ground telling the player where to go has too much contrast because there is no mental effort required to determine the solution.
Not only does this map present no challenge due to high contrast, it is possible to become trapped.
Challenge is only part of the story, though - puzzles of any challenge level can also be good or bad. It's easy to point to specific problems that make puzzles worse: trapping situations, too many negative options that look positive, lack of negative options, and too much contrast for the player's skill level. A puzzle with only one option at each step is no puzzle at all, nor is a puzzle where all the options result in positive progress, as it makes the player feel like their choices don't matter.
Although this map is logically challenging, it is overly punishing. Here the player needs enough velocity to get to the exit, but the most intuitive way to gain velocity gives the player too much, resulting in their death.
On the other end of the spectrum, tricking the player too frequently with negative options that look positive can be frustrating and even rage inducing. While players should be able to make mistakes, the punishment shouldn't be severe on a regular basis. The map featured in the above image is by far the most punishing map I have played - every mistake the player makes results in having to redo a large majority of the puzzle to get back to where they were and try again.
In this map, the button opens the exit, so naturally the player spends most of their time trying to get a cube into this area to place on the button. But unless they first get blue gel underneath the angled panel and in certain other key locations, getting the cube in this area is just a massive amount of negative progress that the player believes to be positive progress.
It's important to remember that the player has to reconsider all options every time they change the state of the puzzle. Having too many options and/or too many puzzle states can be mentally exhausting, rather than challenging. It's also a bad idea to allow for the player to make considerable negative progress without realizing it - the player should be able to determine that they have made a mistake relatively quickly. The feedback loop should fit within the player's attention span so that they can still remember the moment when they made the mistake. Otherwise the player can feel as though they are wandering around aimlessly trying random things without making any discernable progress. However, it's fine to make it difficult to determine when positive progress has been made - this can make the player feel like they solved something above their skill level.

Having options that never change between puzzle states can make the puzzle feel cluttered. For example, a cube that only needs to be put in one place and then never moved from that position is effectively clutter. Either the cube and its requirement should be removed, or new requirements should be added so that the cube must be used more than once. If the challenge is simply to get the cube there in the first place, then it could probably be replaced with a button for the player to press.
Every time you change the puzzle state in this puzzle, you have to carefully re-evaluate the surprising number of options again, making it difficult to plan ahead at all.
On the other end of the spectrum, having options that change too frequently between puzzle states can make the puzzle feel overwhelming. It's important that some options stay constant for a while as others change, so that the player doesn't have to focus on everything all the time.
In this puzzle, the player is meant to learn that they can travel through portals in both directions, if they haven't already. The design of the puzzle forces the player to exit the pre-placed portal, move their own portal elsewhere, and then re-enter the pre-placed portal.
But what if you want to teach the player something without challenging them, while still making a good puzzle? Good easy puzzles are typically tutorial puzzles that teach the player something new, either by carefully using contrast to highlight the new information, or by reducing the number of options such that the player naturally chooses to use the new information. The puzzle featured above has very few distinct options, even if the player doesn't yet grasp what those options are.
An example of high contrast.
In the above image, there are many more options, but there is high contrast directing the player's attention: the player intuitively understands that each cube belongs on a button, and won't waste time putting the cubes anywhere else once they obtain them. This lets the player quickly rule out options that don't result in forward progress.
Being able to disable the barrier blocking the star requires some extra steps that first-time players wouldn't try.
High contrast can be used in specific instances of more challenging puzzles to reduce the challenge of a particular aspect of the puzzle, and low contrast can be used in easier parts to boost the challenge. This allows for keeping a puzzle feeling consistent, rather than lumpy. Lumpy puzzles have some parts that are either far easier or far harder than the rest of the puzzle, and it can make the puzzle just seem weird - the lumps don't fit naturally with the rest of the puzzle. If you want to hide secrets, however, then lumps are the way to do it, as seen above in The Talos Principle.

Of course, many of these principles apply to more than just puzzle games, but puzzle games are my favorite.