I find it helpful to write up an encounter script for complex NPCs which specifies the default action they'll take for the first 3-5 rounds of combat (and IME by then most combats are over or the number of NPCs I'm managing has at least been whittled down by to a handful). For example:
Round 1: Move into cover and cast buff spell x.
Round 2: Cast area spell x and move away from melee.
Round 3: Attack with ranged weapon x against the weakest enemy, or if stuck in melee then use melee y against the most dangerous melee opponent.
80% of the time, the planned script is enough and I don't have to remember other NPC abilities, I just follow the script. This frees up a lot of my attention during combats so I can focus on the 20% that does require me to think.
When preparing spell lists, duplicate spells, and don't prepare contingency-type spells for niche purposes. For example, if your D&D wizard has two 3rd, four 2nd, and six 1st level slots, then "dispel magic x2, invisibility x4, sleep x2, magic missile x4" is a fine set of choices. Your NPC is equipped with four useful default options (debuff, evade, disable, or attack) and many combats won't be long enough for it to cast more than 3 - 4 spells anyhow.
Set It and Forget It
When choosing mechanical options, select static benefits you can write into the stat block and forget. If an ability requires a choice when used, make the choice beforehand, write it into the stat block, and forget it. Avoid abilities that create new options you'll have to remember and pay attention to.
For example, when making a D&D monster, I might consider feats:
Improved Toughness: add +x hp to stat block and forget. One of my favorite choices for almost any opponent.
Power Attack: Every round, take -x to hit for +x to damage. I'll decide that x=3 always, add to stat block, and forget.
Improved Bull Rush: Provides new options for pushing a PC using a complicated formula and rules I don't have memorized. I would never choose this option unless the purpose of this monster is to create forced movement and I want it to push someone almost every round of combat.
Take them out of the Fight
In large groups with multiple NPCs I don't want the players to spend 15 minutes every round watching the DM roll dice against himself. I'll often convert a portion of the battle into "cinematic mode." I segregate the ally NPCs and some appropriate mook-level enemies and describe them fighting "over there" -- usually in a slightly separated part of the battlefield. I give a cinematic description of the fight, but I don't roll dice. The outcome of the cinematic fight will mirror the outcome of the part of the fight where the PCs are involved and the dice-rolling is. Once I've done that it doesn't matter exactly what the NPC's abilities are -- I'm just giving colorful but brief descriptions of combat action.
For version 2 of "take them out of the fight" literally take them out. The NPC falls in a pit, fails a save against an action-denial spell, has to spend an action every round using the macguffin, is back at camp guarding the horses, or is a noncombatant who just hides or dodges every round. None of these solutions should be over-used, but you can use all of them occasionally and every time you do you've made that encounter a little easier for yourself.
- In-character: "Deonarra hesitates and looks to you. 'What should I do?' she calls out."
- Out-of-character: "Hey, what do you guys want Deonarra to do this round?"
- Long-term OOC: "Hey Andrew, you'll be running Deonarra for this combat. Here are her stats."
Phone it in
Especially in the later rounds of combats where everything is mostly decided, there's nothing wrong with occasionally just taking the obvious choice every round, like "heal the wounded" or "attack weakest enemy" or "help a PC by flanking and using the aid action."
For the advanced version of phone-it-in, optimize the NPC to be REALLY good at doing just a few things and relatively crappy at everything else, so that those few options are overdetermined -- they'll nearly always be the optimal choice and most decisions are no real decision at all. For example, a 5e mastermind rogue can do well spamming the help action, a 4e warlord can effectively spend all its actions giving the PCs free attacks, or an l5r archer with a good Water ring can continually guard and remove strife to buff and replenish the PCs.