One of the things I do is to keep track of generic professorial skills and a real world descriptive of how skilful said NPC is in that skill. The skill could be such as soldier, cleric, terrorist, spy, mathematician. The descriptives can range from poor to legendary. If during game play you need to add more skills, or refine one of them then a quick note is all you need.
For example: Bob the assassin has an assassin skill of good. He's good at all things that an assassin is supposed to be. Fred the bar keep may have a bar manager skill of poor (thus why he is always asking the PCs to help) but a performance skill of legendary (thus why the parties at his place are legend ... wait for it .. DARY!
Depending on how rule heavy you want to be, those skill could get more and more focused. But the more focused the skill, the more skills you have to write.
Note that those familiar with Over The Edge may recognise this system as extremely similar and they would be right.
So first of all, I really like this idea. I tried it once or twice a long time ago and I'm still fantasizing about it. With that out of the way, let's move to my 2 cents.
Make the NPCs well-rounded characters
These NPCs aren't just some recurring characters, not to mention some one-time ones. They're gonna be with the party for a very long time. Whole adventures, actually, which is quite a lot. This means that they should be really well rounded. Your players should get to the point of distinguishing between them after just a few words, especially when the NPCs are the ones who spark the conversation.
More than that, though, they should be more than cardstock characters. You want them to express feelings, you want them to have goals, and you want them to react. Otherwise, your players will have hard time connecting with them, and this is far less good. As a rule of thumb, make them round and distinguishable from each other. A wizard is different from a fighter, true, but we want a greater difference. The prince will have hard time adjusting to the wilderness and to the bugs in his bed. The merchant will always stop to collect the better loot so she'll be able to earn much from those bargains. Classes are a dirty way to distinguish, but they're better when accompanied by some other traits.
Don't let them speak right one after the other
The players aren't coming for the game as an audience for a theater, they're here to play, and hearing NPCs talk with each other is far less fun. If you must make them speak between themselves, make it as quickly as you can and immediately move on. If you can narrate the conversation instead ("they're talking about what happened, Elsa thinks that they should go east and Hans thinks that they should go west…"), it is far far better.
Give the players the center stage
The players and their characters are the real stars of the campaign. The NPCs are extras, and should always be seen like for you that when you're playing them. If they're far cooler than the PCs, or if they have much more screen time, something is off with your campaign. It's better to not have the NPCs with the group than to let them illuminate and shadow the PCs.
They're not all knowing
Think for yourself what is more important, a character who knows everything or a character who knows only part of them. For me, it is the latter. That comes from one simple thing: There's no drama when everyone knows everything (it is not entirely true, but that's for another time). Make them say sometimes stupid or idiotic things, make them come to wrong conclusions, let them make mistakes. They're not a kind of supernatural deity who knows everything, but humanoids who are as humane as the characters, and they should be played this way.
Make them important for the story
They should always be important to the overall story, in one way or another. In one of my more successful D&D campaigns, the characters had to escort a princess to a neighboring kingdom through the forests. Having to keep her safe from one hand, and dealing with all of her complaints from the other one made the game so much richer. They don't have to be important to each and every one of the scenes, but they should always be important for the overall story. Otherwise, the characters may just leave them to rot one day, when things will turn the wrong way.
And an end
Hope I succeeded with helping you a little bit.
Best Answer
The most important aspect of an NPC is presenting a persona that the players can interact with realistically and consistently.
Stats will not do that - they'll help and give you guidance on what a character can and can't do, and for some GMs (and possibly systems, but that's debatable) that is essential - but it's not required.
Believe me, I generated dozens of 20+ level NPCs for Rolemaster for my campaign before I realised this, I only wish I'd known it sooner.
Ad-libbing
A very very helpful skill with NPCs, but try to avoid NPC growth; like suddenly giving an NPC a skill that are exactly right for the situation that they're in, that they wouldn't have. Now and again drop a skill on them maybe (and note it down, always note what you add or change) but not always. The players are the "do-ers" not the NPCs.
Sticking to the rules
Do stick to the rules for your NPCs, one or maybe two can have some kind of exceptional skill or ability - but make this a special, if you litter your NPCs with things that are "impossible" to the rules, you'll just nark your players off when they realise this, and they will.
What do you need then?
All you need is as much of a summary of the NPC on a card or a sheet that you can keep the NPC consistent with what the players have seen before.
Personality. Write down what the NPC is like, their persona, their quirks and a couple of likes/dislikes. This is what players interact with.
Appearance. You don't need to write a saga and not every NPC needs to stand out; but one or two appearance quirks that players remember define an NPC. "Ah, it's Bob the wizard, he always wears that battered old green hat."
Stats; scribble down a few critical stats for them if you really need; for AD&D it'd be things like HP, AC and a couple of skills and attack bonus if they're going to hit someone. Combat based characters may need full fleshing out, but Bob the Shopkeeper doesn't need any of that.
Skills/Perks; mostly like stats; make a note of a couple of key skills and either their level/rating/bonus/etc or just a word description and one obscure (hobby) skill for the NPC. "Bob the Shopkeeper, Bargain +10, Rumourmonger +8, Taxidermy +6". The hobby skill gives the NPC something to talk about.
Relationships; who the NPC likes and dislikes and also any events that have happened with (or without) the players that are significant to the NPC. You don't need full details either, just a short phrase to kickstart your own memory about what happened. Like "Bob gave Fred magic sword as thank you for putting out fire"
That's it, that's all I roll with now and that's what keeps the NPCs alive; you need to make them convincing, not detail to the Nth degree - I've found that to actually be more limiting for them and not to mention time consuming!
Major NPCs
These are worth detailing in full - or at least a lot more detail, again especially for combat based NPCs; these are your major supporting cast to the story and I take more time and detail in these NPCs as well as adding more background, really just fleshing out what I've put above.