Thank you for recommending ARMING_REQUIRED. However, I'm not getting what I think is the expected behavior. ARMING_REQUIRED only forces left rudder input to ARM. Yes, this solves requiring an RC connection to ARM. However, I expected ARMING_CHECK to handle Pre-Arm check. It is set to 1 in my parameter file. That is "ALL" which includes RC Failsafe.
Note in BOLD from the description of ARMING_REQUIRE
ARMING_REQUIRE: Require Arming Motors
Note: This parameter is for advanced users
Arming disabled until some requirements are met. If 0, there are no requirements (arm immediately). If 1, require rudder stick or GCS arming before arming motors and sends the minimum throttle PWM value to the throttle channel when disarmed. If 2, require rudder stick or GCS arming and send 0 PWM to throttle channel when disarmed. See the ARMING_CHECK_* parameters to see what checks are done before arming. Note, if setting this parameter to 0 a reboot is required to arm the plane. Also note, even with this parameter at 0, if ARMING_CHECK parameter is not also zero the plane may fail to arm throttle at boot due to a pre-arm check failure. This parameter is relevant for ArduPlane only.
So the airplane should not ARM if no RC connection, right?
Also this does not solve if you turn off the RC transmitter while the airplane is armed and on the workbench.