From PM, in case this helps others:
If GCS says it is armed, then one thing comes to mind, but I might be wrong.
16.09 has a new feature where it waits to do gyro calibration (part of arming) till after it sees that the FC is not moving. If you have noisy gyros, it can keep it from completely arming?
Try disabling Attitude -> Settings -> Wait Until The Board Is Steady
If that fixes it, you can re-enable that and increase the "steadiness value".
System -> Settings -> AttitudeSettings -> BoardSteadyMaxVariance
Maybe try 10 or so. Find the lowest value that works well.
To save that value, highlight (click to highlight, but not enough to edit again) the changed value and then press the red "up arrow" at the top of the screen.
Also: Quad must be sitting on the ground during this arming gyro calibration. You can't hold it motionless enough in your hand.
One last thing: The default arming timeout is 30 seconds, so if you wait more than 30 seconds it will automatically disarm and there is no speech to tell you it is disarming.