I have used a GM-NPC on occasion; usually to fill a role (or two via mutliclass) for the party which isn't filled by the PC's. The balancing act is to ensure their relevance in the group (and not simply be a doormat) without being heavy handed.
In smaller groups sometimes a GM-NPC is necessary; you'll need a decent back-story, something with real depth (so there character is clearly defined).
Their role should simply be back-up; mechanically I let the players make their rolls; I choose their spell selection (travelling & battle list's). And they have the PC's talk tactics in-game as they get to 'know' each other.
It's never been an issue at my table; the NPC is never there to outshine a PC's and their motivations are always clear (even if they backstory is more of a slow reveal).
Another advantage is; if a PC dies there is an option of the player running the GM-NPC until a new PC character can be introduced into the story without spoiling the flow.