Frank's first example is a sweep (vs. your initial post which is an extrude with a subdiv modifier applied).
A sweep takes a cross-section and runs it along a curve, which gives you much more control over the end-result than the extrude option does.
A loft (the final suggestion) takes a series of cross-sections and joins them.
On the whole I'd take Frank's suggestion and apply local twist modifiers (per Zoohead) unless you're trying to animate the result. If you're trying to animate the result, it becomes a question of the dynamic effect you're trying to achieve and all bets are off. In the end you'd probably end up creating the thing as a mesh by hook or by crook and then cheating like mad to get the animation to work.