Most likely your aircraft has some asymmetry that causes it to drift. When flying in heading control modes (Cruise/Guided/Auto) the way for Ardupilot to maintain heading is to introduce a roll to compensate for the deviation.
You can test this assumption by flying in a mode without heading control (Manual/Stabilized/FBWA/FBWB). In this case the aircraft will fly with zero roll but will deviate from the heading.
All this with the assumption that the controller alignment is correct (and it probably will be).
On the other hand, your EKF3 sensor integrator is not achieving correct solutions and these erroneous solutions are what it passes to the AHRS. This can lead to an accident at some point.
Valid values from 0 to 0.5. Occasionally acceptable from 0.5 to 1. Above 1 is not valid.
Employing SERVO_AUTO_TRIM aids in flight stability.
It is not the solution to your problem for two reasons. First, I don’t think its performance limits are capable of ‘correcting’ your problem. And the second is that problems should be eliminated at source and not ‘camouflaged’.
In any case, I recommend that you activate SERVO_AUTO_TRIM.