I am a bit confused by your comment " I did notice the torque was much reduced at this slow rate. so I am suspecting my stepper controller."
Are you using an external stepper driver (controller)?
What observation makes you say torque is reduced?
As you observe, the G0 version of your program runs at whatever you have set for max velocities in X,Y and Z, where as G1 f40 runs at 40mm/minute.
The torque applied to the discrete rotations of the stepper is nearly the same at Vmax and F40, in a real world the effective torque would be slightly less at Vmax.
On each step pulse, the stepper controller dumps a pulse of current into each winding, at the correct timing, to create movement. The current level is controlled by the POT. At higher speed, I would expect the motor core to heat up a little, as the stepper heats up a given pulse of current will generate slightly less effective torque, but that should be trivial.
Keep in mind the following as well:
The first two lines of your program are
G0 x10.0 y10.0
g0 x10.0 y50.0
tinyG implements continuous motion from the starting point(I'll assume (0,0)). When the motion gets close to the (10,10) point,a third order polynomial track is computed to keep the the spindle in motion as it changes X velocity to zero and continues on to (10,50). The actual path of the spindle will not pass thru (10,10). The amount of 'rounding" at each corner is a function of the velocity of the spindle and it's mass, with the mass represented by the jerk parameter ($xjm, $yjm, $zjm).
When the program runs with f40, the momentum of the moving spindle will be lower and the computed third order polynomial will more closely match the path over (10,10).
It might be useful to dump your parameter set ($$ command) and copy it to a cloud drive, then provide a URL.
Also, just to clarify what I think Zootlaws is suggesting "Always start from a factory reset. "
I believe he is saying move you spindle to what you want to be the (0,0,0),
then do a hard reset of the tinyG board with the pushbutton or a software reset from the CLI (^x Reset (control x) )
For tinyG, a "Factory reset" is a $defa=1 command from the CLI, probably not what you want
https://github.com/synthetos/TinyG/wiki/TinyG-Configuration-for-Firmware-Version-0.97#defa---reset-default-profile-settings