I do a lot of industrial automation using steppers as they are very cheap and pretty robust for low speed work. In fact as we speak I am building a stepper indexer using off the self motors and drives.
Steppers stall because they are driven faster than the current can build up in the coils. As a result, the torque drops off since torque is directly proportional to the current in the motors coils. The motor can no longer move its load so it simply stalls. This happens after missing 2 or more steps and even if you remove the load the armature is stuck until the current is shut off. All of these 3D printers are probably using 12 volts to the bridge drivers which severely limits their torque curve.
One way to fix this is to increase the bus voltage to the bridge drivers. Industrial stepper drives mostly use 80-160V. Larger drives usually rectify the mains 120/240V AC and send it to the bridge drivers after some filtering. This allows the current to build faster and extend the torque curve further into the higher RPM's. But these are still stepper motors and they typically all drop torque after you go over 1000-2000 RPM. Remember, missed steps from resistance on the motor shaft is bad, it almost always leads to a stall.
Stepper motors are an indexing type motor and have physical teeth cut into the armature which line up with the stator poles. You index the motor by turning the poles on and off in sequence and the armature follows, cogging into place as the magnetic field lines up. Most steppers have 200 steps per rev, smaller steppers can vary quite a bit. There are a few stepper out there with more than 200, the 5 phase steppers from oriental motor are an example with 1000 steps per rev. The step count per rev can be increased using what is called micro stepping. The steps get divided up by varying current to the poles to hold the armature between the two poles using fast PWM.
Very rarely are steppers closed loop. If you command a stepper to move 200 counts, you will get 200 counts. The only reason you would need it is if you want to detect a few missed steps and compensate for it in your motion loop or detect a stall. The controller cant fix a stall unless it stops the current flows and starts over. And at that point you just ruined a part so its not much help.
Servo motors on the other hand can run at very high speeds. Servo drives can supply extra current when necessary to overcome resistance and keep the motion smooth and on track. This is done via the velocity loop which calculates the speed from the encoder feedback. When the motor slows, current is bumped up to overcome the resistance. But its usually only for a fraction of a second. Too much resistance and the drives will stop with an over current fault. You need to slow your system down, reduce the load or up the motor size.
Servo motors don't stall unless you lock up the output shaft which is usually a mechanical fault (hard limits hit, shaft coupler failure, bearing failure, etc.) or an undersized motor. And if you really want performance you get rid of the lead screws and rotary motors and go balls out with linear motors. They can achieve accuracies greater than 1 micron and speeds to 2+ meters per second. I have seen a few systems using them in person and its scary how fast they can gracefully accelerate and position a load.
And torque? Man they have torque. I had a large XY table with little NEMA 23 500W motors snap the aluminum couplings like a twig. The drive went bad, lost sync and tried to launch the table to the moon. Even jammed the table guides and ball screw nut requiring me to un-stick it with a come-along. A real mess. A similar sized stepper would have stalled. That table can easily position 500+ pounds though most of our motion is low speed so we don't need huge motors.