I reviewed the PR it related to the issue, but not directly. The PR doesn't handle a limit each control (pitch/roll/yaw). I think that this limit should be on the mc_att_control level, not on the mixer.
I also think it should be a parameter.
After some more tests (and crash…) I think that the more critical issue is that specific motor can go to low RPM and it doesn't produce thrust. which is not good when the motor needs to go high again, it takes much more response time to generate thrust from 0. @bkueng also mantioned that in the PR.
There is the idle_speed parameter that fixes that issue, it doesn't allow the motor to go to too low. I faced problem with this mixer parameter because it in the end of the logic and by changing it its like to change all the most inner loop gains. I think that parameter should have been just a clamping effect than a scalling effect.
Does the MIN_PWM should be used for that? Or it’s a "constant" value that should be set according to the ESC?