Those kinds of shape are usually very hard to get right with a SubD workflow. What I usually do is after I have that bad shape in place, I start to retopo on top of it, where I can more easily plan my approach on how the loops will flow to get the optimal shape, and vertices now have a basemesh to stick to the surface and follow the curvatures. Kent does that a lot in the Sci-Fi Helmet modeling course. It’s a bit old but still full of Blender timeless knowledge, it’s always it’s just the hassle of a different UI that gets in the way.