Subdivision works great when you meet certain criteria. One of those criteria is, don't have "stars" or "poles": places where more or fewer than 4 faces meet at a single vertex. (3- or 5-poles are considered okay, because all-4s are impossible, but they're still not good.) The classic pinching that you see when using subdivision on a UV sphere is what you get when you ignore that guideline. Here, you're seeing it on your screw modified geometry. When you use a 16-step screw, including a vertex at the origin of that screw, then you're making a 16-pole. This is going to subdivide just like a UV sphere: poorly.
So what would I do instead? Well, it's going to depend on exactly what you need-- the full context of things, the shapes you're using as well as your intended use of the model-- but it might be something like this:
Compare the pole of mine (left) with yours (right).
Rather than subdividing the final mesh, with that 16-pole, I'm just subdividing the string; then, I'm using more steps on the screw. So no poles are ever getting subdivided. And, because a screw works differently than subdivision, I end up with a shape more cylindrical than I'd get with subdivision-- which is probably what I want.
Now, when wouldn't that work? Well, subdividing the string isn't exactly the same as subdividing the final shape (although mirror->subdivide->mask could be used to make it like that.) If I were to do this to make a UV sphere, my final output wouldn't be as spherical as I'd like.
And, since you were subdividing after your solidify, those solidified edges won't get subdivided. You'll see I have a disabled Bevel down there, which can be used to "subdivide" those solidified edges.
But also, subdivision is cross-platform, and other modifiers aren't. So any solution that involves subdivision before other modifiers isn't cross-platform. And certain features like Simplify settings (in properties/render) aren't going to work well because many of our vertices are being created by modifiers other than subdivision.
Now, what if I wanted to apply modifiers and create decent topo for use with subdivision-- say, for cross-platform use. What would I do then?
First, apply the screw. Select the outline of the pole faces and duplicate to a new object. Grid fill that object, then shrinkwrap to original. Delete the polar faces and merge our new grid-fill into that gap.
Final output, with 2 subdiv levels, on the left. What I've made still has some 3-poles, in places that aren't ideal; it could use some tweaking of the curvature, since there are more vertices here. (I probably should have shrinkwrapped to something with appropriate curvature, not the unsubdividable original geo.) But with very little trouble, I've eliminated the pinching.