Here's one way:
Add a cube. Add a Subdivision Surface modifier to the cube and change the levels to 5.(I used 3 levels in the pics)
Go into edit mode, and add two horizontal edge loops to the cube, sliding one close to the top and the other close to the bottom.
(You can skip this step, but adds more detail)
Add a vertical edge loop. With that loop still selected, press CTRL + B then + to bevel the loop to three segments. Press CTRL + - to shrink the selection the middle edge loop and scale it in a bit.
Deselect everything then select all the vertices at the top half of the cube. Move these up to the length you want the cone to be. Select everything and scale it in on the X axis.
Go to top view(NUMPAD 7) and move the cube right on the X axis a little. Make sure the 3D cursor is centered.
Go back to Object mode. Add an Empty. Rotate the empty 90 degrees on the Z axis.
Select the cube and add an array modifier with these settings:
Then add a Simple Deform modifier with these settings:
Finally, add another Simple Deform modifier with these settings:
You can adjust the twist with the deform angle on the first Simple Deform modifier. You can adjust the point with the deform factor of the second Simple Deform modifier. Oh and set shading to Smooth.