Event 38 describes the leftward "drawing" motion, the amount moved per frame increases by 10 pixels every frame (self.recoil+10).
Event 37 describes the reset motion, which moves it dt*6% (roughly 10% every frame at 60 fps) from the current position back towards 0 every tick.
To have it "spring forward" you'll want the speed at which it resets to be faster than the speed at which it gets drawn back. However, since both events are running while your trigger is down and both forward and backwards movement are based on the same variable, if the reset speed is faster than the drawing speed it will just never move. You'll also want both movements described the same way either with dt or without (framerate dependant or independant), not both.
Try something like this instead:
+ System: Every tick
-> Shield: Move Self.Recoil pixels at angle Self.Angle+180
+ Player: ToolID = 1
----+ Gamepad: Gamepad 0 Right shoulder trigger is down
-----> Shield: Set Recoil to lerp(Self.Recoil, 32, dt×6)
----+ System: Else
-----> Shield: Set Recoil to lerp(Self.Recoil, 0, dt×30)
Although IMO the concept of recoil isn't particularly suitable for the drawing of a bow, and using lerp for really fast motions with dt like this can possibly cause issues later in low framerate situations.