I was talking earlier about issues with pets in Diablo 3. They are the same issues other games face - pets either always live and are overpowered or always die and are useless. People love pets though so I want to talk a bit about the real problems with pets and how we might go about fixing them. The problem with pets is not that they do damage, or that they do too much damage. Rather, it is that their toughness matters. It is very easy to create a balanced class or ability based on a pet that beats up the monsters as you can simply balance it against whatever else you do to kill things. The problem is that pets can completely invalidate the enemies' attacks and that wrecks everything.
One way to fix this is to have pets that are very short duration. In this model pets are more like an extended nuke spell that run up to the enemies, bash for a bit, then vanish. In theory this works just fine but in practice I think what players expect from a pet class is a bunch of pets that follow the character around. If all the pets only appear when the player is spamming then a lot of the flavour is lost and flavour is really what we are after. If we were after balance we would just shelve pets permanently because they are a neverending problem.
D3 is actually far worse in this regard that it has to be because pets are on long cooldowns. If my Zombie Dogs required real resources to summon I could keep recasting them as they die and that would fix the all or nothing problem a lot. I would have to choose between casting damage spells and resummoning pets and although my pets dying would suck at least I could continue to move forward. With big cooldowns on pets though there is no middle ground. Either the pets are immortal, or they die and I can't play and there is nothing in between. I am not super familiar with Path of Exile but as I understand it that game did things a lot better because you can spend your time resummoning pets so you don't fall off the cliff quite so dramatically.
Really though if you want permanent pets I think the way to make them work better is to fix enemy aggro. Right now in D3 and indeed most games of its ilk monsters operate purely on a proximity aggro system. They happily stand and bash on the zombies and ignore the summoner in the background. If the enemies ignored the pets and all went after the player then things would be much smoother since the player would have to be able to tank, kite, CC, or do whatever else to deal with the damage just like any other player would. The pets could happily bash on the monsters and do the damage that they need to do without worrying much about their toughness.
This suggestion has the flavour issue that people really want a meatwall that makes them invincible. I think though that the invincible meatwall desire intrinsically creates intractable problems. In any case the meatwall is going to interfere with enemy movement and keep some of the enemies away from the player, it just won't be a complete defence. With this sort of design pet toughness isn't much of an issue as long as they don't die to AOE effects but are still killable in extreme circumstances everything is fine.
In short, I think the best way to fix pets is to make them into weapons rather than armour. You don't summon zombies to get punched, you summon them to do some punching!