How do I create an oblong torus with a constant thickness?
If you stretch a torus, both the major and the minor radii will be stretched, so the effect you see is perfectly normal. There may be some way to remedy that, but I haven't found it. I have come up with some workarounds though.  



Method 1  

Add a mesh circle.
Tab into Edit mode1.
Scale it along one axis, SX or SY.
Tab back to Object mode.
Convert the circle, which should now be an ellipse, to a curve AltC > C.
Put a bevel on it. If you want a circular tube, you needn't use a bevel object. Just set the bevel depth and resolution to whatever rocks your boat and set Fill to Full.
When you're happy with it, convert it back to a mesh AltC > M.
Unfortunately I haven't been able to find out how to include the menus when I take screenshots, so this doesn't show the conversion between mesh and curve and back.


The reason I don't use a curve directly, is that neither Bezier nor Nurbs curves represent elliptical object very well. They approximate circles acceptably, but with ellipses they fail miserably unless you give them a ridiculous amount of vertices.    



Method 2  

If you have the Extra Objects addon installed and activated, you can use XYZ Math surface to create a torus object of practically any shape.  

To enable this addon, go to User Preferences CtrlAltU > Add-ons > Add Mesh > Add Mesh: Extra Objects.


Add > Mesh > Math Function > XYZ Math Surface

For an elliptical torus with a major axis of 3, a minor axis of 1 and a circular tube with a radius of 0.25  

X equation:
(3+.25*cos(u))*cos(v)  

Y equation:
(1+.25*cos(u))*sin(v)  

Z equation:
.25*sin(u)  

U min and V min: 0
U max and V max: 2*pi
U wrap, V wrap and Close V enabled.  



The normals will be pointing inwards, so you'll need to flip them. Tab into Edit mode and hit CtrlN to recalculate them to point outwards.
  



Method 3  

Here's a third method that I discovered today, when reading this question. It uses the Skin modifier, which is something I've never used before. This seems to be the simplest method, and very straightforward, and that's the reason I'm making this late addition.  

Add a mesh circle.
Tab into Edit mode1.
Scale it along one axis, SX or SY.
Tab back to Object mode.
  

Add a Skin modifier.
  

Add a Subdivision Surface modifier. As pointed out by PGmath in a comment to this answer, the Catmull-Clark algorithm doesn't produce a perfect circle, and depending on your need for accuracy in the shape of the skin, you may want to consider using one of the first two methods instead.
  

The radius of the skin can be scaled. Make sure the Skin modifier is still in the modifier stack, i.e. do not apply it.
Tab into Edit mode.
Make sure everything is selected (A once or twice).
Press CtrlA and then drag the mouse or use the arrow keys on your keyboard until you're happy with the thickness. Enter or left mouse button to confirm.
  



1Scaling in Edit mode is essentially the same as scaling in Object mode and then applying the scale.