c) There need to be meaningful consequences for failure, and failure should be something other than a TPK. In a storybook adventure, might mean you don't get some dope & epic magic armor, IDK. I know what you're thinking, "I can handle all kinds of stuff!" But newbie DMs can't, and storybook campaigns should give some guidance. For example, "If the party somehow loses the dragon egg, Lord Chuckwagon will be very cross with them and not send any Veterans with them to help face evil, mutated flumpf terrorizing the village." Most adventures I've seen don't really picture failure in terms other than You Have Died, Adventure Stops Here.
There are a few ideas here that I'm agreeing with, but this one takes the cake as being one of the most important things I've seen.
I've never run an adventure module myself, but I've played in a few games that did, and the "crap, I don't know what to do now" problem is huge. Part of that can't be avoided. Players are going to go left, and there is nothing you can do about that. But, including enough npc motivation and basic pathing (if you fail to do X, Y is the likely result) would be a huge boon.
The more I think about it, a flowchart of the adventure actually does sound like a monumentally useful tool. In addition to helping see failure points (oh, our entire plot revolves around the players successfully finding clue X) it a tool that can help prevent SNAFUs by the DM. I remember hearing a horror story once of a DM allowing some random NPC to get killed by the players, only to find out a few months later that that NPC was vital to the plot of the second half of the Module.
Just getting an idea of "they should do this, then that, then one of these two thing which leads to this fight" can really help a DM conceptualize the adventure in a way that can really help.
Use encounters that mix monster types. 95% of the encounters in recent books seem exclusively focused on what's narratively appropriate, not on what makes an interesting encounter. I don't want to fight 4 duergar for the tenth time this dungeon - let me fight creatures individually at first to learn how they work, then start mixing and matching foes so I have to adapt to their new way of fighting, and make my own.
Nearly every fight in modern adventures seems to fall into one of two camps - a single large monster, or 3-10 of the same monster. I recently took a look at an old 4th Edition adventure, and in that nearly every encounter had at least 3 different minion roles (lurkers, skirmishers, artillery, brutes, etc.), making each fight notably different to the one before. 5e may have committed to boring monster design, but it can still make the encounters interesting with just a little more effort.
I never noticed that before as a player, but as soon as you said it... yeah, that is something that happens all the time in modules. Fighting "large group of X" for the third time is a drag, you need to have a unique element or configuration to each fight, to keep the tactical interest I think.