Okay, try this instead of your current Rec/Over/Play script:
#name Rec/Over/Play
#sustain 1000
if inPause
Start
else if mode == :Reset
Record
else if mode == :Record
Overdub
else if mode == :Overdub
Play
else if mode == :Play
Overdub
function OnSustain {
if sustainCount == 1 Reset
}
This should preserve the Overdub mode after using Stop, StopNow, or Pause.
I added something else that can free up a footswitch button. If you hold the button for this script down for longer than 1 second, it will Reset the loop so you can start over. If you want that to wait longer change the number after #sustain from 1000 to 2000. This is the number of milliseconds to wait so 2 seconds instead of 1. If you don't want that at all, then remove the bottom part starting with "function OnSustain".
Alternately, if you would rather have long-press-Reset be in the StopNow script we can move that there.
Edit: I noticed that when you use the variable sustainCount in this script the Script Editor will show a warning message about that being an unresolved symbol. You can ignore that warning.