-
Ideally you'll be getting the best coat the surface can support. A lot depends on the paint, viscosity, grip, ambient heat, brush type and condition, surface orientation, mouldings etc.
You have to get an idea of it as you go along but experience helps of course.
Oil based gloss is generally worse for curtaining and showing curtaining than acrylic eggshell for example so multiple coats can be useful. You definitely shouldn't rely on a single coat to change the colour from undercoat to top coat so either use use a tinted undercoat or 2 thinner top coats.
It's a massive pain to get high quality paintwork, it's taken me 25 years to get to the point where I can do it in the field, mostly the budget dictates the quality though.
I would have used Zinnser Stain Seal with 2 coats of undercoat and 1 or 2 top coat. The main problem most people have is overloading, trying to get too much coverage/opacity from each coat. That's why you get curtaining. You can sand curtaining out of primer but it needs to be fully dry, use a 240 grit paper sanding lightly across the very dry primer and you'll take off the ridges. You can also scrape them off with a very sharp blade/chisel, that takes a bit more practice though.