As you suggested, you can use Simple Deform modifier for this
One modifier set to Twist for the spiral
Angle around 1080° for three twists, and use limits to move it up/down
Second modifier set to Taper, and adjust to your needs.
So there are several problems and it looks like you can fix them this way:
Decrease the Distance value of the Bump, try 0.1 for example.
Increase the object size, it seems to work better.
Change or add a light source, for example a sun, I guess a simple plane emits parallel rays and it may not give a good render.
Maybe put a ColorRamp between the Wave and ...
It looks to me like the big thing is that the strength of the bump map is too high; with Strength set to 1, it's trying to treat the bumps as having a maximum height of 1, which is very large compared to the size of your base. Try greatly reducing the bump map's Strength; maybe 0.1 or 0.05.
Also, note that a bump map will always produce "flat" ...
Okay, so it seems I managed to get the Z-Coordinate by utilizing some of the formulars for circle segment calculation that I learned in school but have gone lost like many things. Here is the Node Tree, if anyone is interested:
Taking the dot-product of the Normal output of the Texture Coordinate node with (0,0,1) will return the Z component of the surface normals, in Object space.
This ring has a curved profile on the inside, and is tapered on the outside.
This discrimination is good.. if you had displacements on the curved surfaces which resulted in |Z| = 1 normals, you could ...