Annoying Bone Rotation Glitch?
The rig is working OK. If you bring up the transform manipulator and set it to rotate on local access:



You can visually see the orientation of your bones:



The red circle is x-axis etc. Clicking on these sequentially gives the range of movement you stipulate in the constraint. Notice x-axis is on an orientation I assume you would want the tail to move but you've set it to zero. The "s" shape movement you describe happens when you try to force movement in a direction that is choked by the constraint. 

I also noticed that the bone roll doesn't quite agree with the orientation of the tail (all the bones are diagonal to the axis). I hit ctrl-n and chose global +z in edit mode to recalculate the tail bones. This ensured up/down, side-to-side but not twist movement - again assuming this is what you wanted.

ps. Nice model

Edit: I notice TeeTrinker has already answered in the comments as I was typing this LOL.