I think I have pinned down what was really annoying me about Plants vs. Zombies 2, and it combines two previous topics that lead to unsatisfactory outcomes in both victory and defeat.
First, some levels incorporate random elements, such as variation in which row is attacked or a conveyor belt bringing random plants from a list. Combined with the difficulty increases the game has seen, that can make some levels unreasonably difficult if not impossible (without the buyable special abilities) based on a roll of the dice. The most egregious example I found was a “last stand” level with random elements; you place plants at the start and see if they survive the waves, with minimal interactivity. You can plan for an average distribution, you can use the minimal interactivity to respond to some randomness, but you have no real options if the dice say that one lane gets hit especially hard. You get an unsatisfying loss where you do not have options available to let you win. You can then start the same level with the same setup and win because the dice came down differently.
Wins and losses dominated by randomness are not satisfying gameplay. The quality of your play can affect your odds, but when randomness dominates, you do not deserve to win or lose. It just happens. Eventually winning because the dice landed in your favor is just grinding the odds. But people kill the same boss forty times in hopes of a good roll on a loot table, so maybe I’m odd here. For me, this poisons my joy in victory because I do not know which ones were due to something I did versus just a good roll of the dice. Variation adds spice to gaming, but when randomness dominates, the gameplay becomes irrelevant.
Second, the use of unfortunate surprises replicates the problem of cheesy players. Tricks are not satisfying, especially when they are used against you. If they work, you lose, again feeling it little or no fault of your own because the only way to survive the ambush was to know it was coming and prepare. Next time, you know it is coming and prepare, so the trick fails, you win, very mild yay. If you pick the basket with all the eggs, you win; if not, you lose. You do not even get the When Cheese Fails satisfaction of sticking it to someone for trying that trick, because the computer is not that kind of thing. And the computer has a fixed set of tricks, so the ambush works once (unsatisfying loss), after which you know to be ready for it (unsatisfying victory). Reference old adventure games with instant death traps you needed to know in advance to avoid.
If you can combine the two, and give the player the flexibility to respond, that can be a fun challenge, something like the special infected in Left 4 Dead. The special infected are rather dirty tricks, and you get a semi-random assortment, but you as the survivors know and can prepare for that range of options, and you are given the resources you would want to respond to a variety of threats. You can still get perverse randomization in either direction, but the game is not relying on a high risk/reward strategy to try to beat you.
Four things helped me become less annoyed with the design issues in PvZ2. With practice, I got better and learned the economic balance of the new game. With advancement, I got more plants and could execute better strategies. I just stopped caring: “Yep, that wasn’t supposed to be fair.” And by then I had enough coins to throw a few thousand at anything.