I wasn't sure about the joySt.buttons inclusion. Figured that might be an issue. I'll remove it from there.
I did see the reset every loop with an earlier bit of example code. Testing with some debug statements the code I uploaded appeared to be maintaining the correct state. throttleButtonState reads as one on a button press. When that reads as one the code switches the value of throttleState using the If-elseif block. Then an if statement checks to see if throttleState is triggered to 1 (locked) and overwrites the axis.
Obviously I need to test this in flight still, but at least with debugging it seemed to be behaving the way I wanted. That being that pressing the button will trigger a state change.