You've got to enable the "dimension" plugin in skienforge.
What's happening (if you check your g-code) is that every movement command specifies a relative amount to extrude. If your firmware isn't set up for that (it's expecting an explicit G92 (IIRC) to reset the value of the E axis to 0 again at the end of each layer) then you'll get the behavior you've described.
Look at the "E" values given on your "G1" commands in your g-code. They're all small, and proportional to the distance traveled. You want them to be progressively larger, and increasing by the distance traveled each time. Then at the end of each layer, you'll see a "G92" (IIRC) and it starts at zero again.
The difference is that in one mode, it starts at zero (by issuing a "G92 E0") at the start of each layer. In the other mode, it starts at zero at the begining of each move. (The "Teacup" firmware be default has "E always relative" which means it starts at zero every time you move.)
--
I'm building it with
Baling Wire