I agree with the advice to do it old-school... give the players the NPC ally stat block and let them run the ally. Just step in only if an NPC would not go along with a player's choice of action.
Even if they are just temporary allies, distribute control over them to your players and give them a rough idea of their personality so they can role play them.
I run some old school D&D where hirelings and followers are expected. In my experience, I've found that if the player is role playing their followers and making their attacks and noting their damage, they get more attached to them.
They start taking on a life of their own and kind of become an extension of the player character.
Even if they are just temporary allies, distribute control over them to your players and give them a rough idea of their personality so they can role play them.
I run some old school D&D where hirelings and followers are expected. In my experience, I've found that if the player is role playing their followers and making their attacks and noting their damage, they get more attached to them.
They start taking on a life of their own and kind of become an extension of the player character.