Check the damage output of the giant poisonous snake. Also, most of the CR 1/4 medium beasts have a rider on their attack; wolves can prone with any bite, panthers can prone with a pounce, a few can grapple. The beast isn't just for damage, except for the poison ones. Plus, with the baseline proficiency bonus to damage that beasts get, you get things like a wolf dealing 2d4+4 (9 damage) plus save or prone, while the ranger's attack would be 1d8+3 (7.5) or maybe 1d8+5 (9.5) with duelist.
The giant poisonous snake has a bite for 1d4+6 (8.5) as a ranger companion, with a save for 3d6 (10.5) poison damage. This even beats out the hunter's 1d8+5+1d8 (14), and is even even if the foe makes their save against the poison (8.5+5.25 is 13.75).
If you want the pet to be able to attack as it's own action, it's damage output is going to need to be down in the 4.5 range, equal with the Colossus Slayer bonus.
I have a different suggestion. First, give the pet its own actions, as you have done, but do not allow it to take the attack action unless the ranger gives up one of their attacks. This makes it just like the chain warlock's familiar; I like using similar mechanics for balance. This means the ranger can either attack with their beast (adding a rider, or having damage near the hunter's) or they can have their pet help them (which also boosts their effectiveness up to the Hunter's area).
This change allows the pet to keep pace with the ranger if they have to flee something, and allows the pet to feel like its own thing, From levels 3 to 4, it's either pet aids ranger's attack or the ranger commands the pet to attack; at level 5, it becomes pet and ranger attacking in concert, or the pet can still aid the ranger's attack.
To replace the level 7 ability, I'd let the pet become large and gain a bonus, or remain medium and get a bonus.
As for multiattack pets ... there is the giant badger, which with the beast master's proficiency to damage deals 1d6+3 and 2d4+3, for 14.5 potential damage; again, even with the hunter's colossus slayer. I'd call a giant badger a wolverine; it's cooler that way.