You're sort of thinking along the right lines, but implementation could be better.
Rather than adding tons of segments to your base cube (you need them on Y to be able to twist), use very minimal segments on X and Z, and an elongated cubic form (one of the directions other than Y), so more rectangular. Then you can use L3 Subdivision Surface to round that out into your final cylindrical form like below...
You can see the shape I started from on the right there - note lack of segments on X and Z, which is what allows SDS to round it so nicely. The more rectangular the 'cube' is the more 'cork-screwy' the twisted horn will be.
Other than that it's exactly the same deformers as you used, but with 1260 odd degrees of twist.
If you want the base properly cylindrical, when you are happy with your deformers you can Current State to Object the low res base mesh, delete the bottom and top polygons, and then add 2 loop cuts into your twisted mesh which will give you enough (8) points to conform to a circle, either with Points to Circle script (if you have HB Modelling bundle or one of the similar free scripts out there) or you can just load an 8 sided n-side spline and manually conform / snap the points to that to achieve a perfect circle.
You will still need the SDS to make that so, which is why we CStO the base mesh and not the SDS result.
CBR