The function of M92

While answering someones question which involves reversing the direction of the extruder, I tried my advice on my own system before posting it, but discovered something I don’t understand:

First, issuing M503 gives me:
echo: G21 ; Units in mm (mm)
echo: M149 C ; Units in Celsius

echo:Filament settings: Disabled
echo: M200 D1.75
echo: M200 D0
echo:Steps per unit:
echo: M92 X80.00 Y80.00 Z800.00 E93.00 <----- This is the line in question ----------------------
echo:Maximum feedrates (units/s):
echo: M203 X500.00 Y500.00 Z5.00 E25.00
echo:Maximum Acceleration (units/s2):
echo: M201 X500.00 Y500.00 Z100.00 E1000.00
echo:Acceleration (units/s2): P<print_accel> R<retract_accel> T<travel_accel>
echo: M204 P500.00 R1000.00 T1000.00
echo:Advanced: B<min_segment_time_us> S<min_feedrate> T<min_travel_feedrate> X<max_x_jerk> Y<max_y_jerk> Z<max_z_jerk> E<max_e_jerk>
echo: M205 B20000.00 S0.00 T0.00 X10.00 Y10.00 Z0.30 E5.00
echo:Home offset:
echo: M206 X0.00 Y0.00 Z0.00
echo:Material heatup parameters:
echo: M145 S0 H190 B45 F255
echo: M145 S1 H240 B70 F255
echo:PID settings:
echo: M301 P23.81 I1.93 D73.64
echo: M304 P462.10 I85.47 D624.59
echo:Power-Loss Recovery:
echo: M413 S1

So, from that I see my value for M92 (steps per unit) for the extruder is 93.00.

Now, it’s my understanding that you can give that a negative number (M92 E-93.00) and that should have the effect of running the extruder backward 93 steps for one mm of forward motion. Yet it doesn’t.

In fact after issuing M92 E-93.00, moving the extruder 10mm results in the message “too long extrusion prevented”

Setting the value back with M92 E93.00 results in the extruder moving erratically.
I have to re-start the machine to restore functionality.

After a restart, M92 E93.00 is set, so it’s pulling it from eeprom successfully.

I then tried issuing M92 E93.00 just to see if setting the M92 command is causing the problem, but the extruder operates smoothly afterward.

So after a bit more experimenting, I’ve been able to set M92 all the way down to E1 and back successfully, but if I use a negative number returning to E93.00 doesn’t work and requires a reboot.

Does anyone know why this is and/or how to fix it without restarting the printer?