Compass swing - queries

I’ve been trying to do a compass swing on my copter, which uses a Navio2 and the internal compass. I’m doing it because of a large offset (which I reckon is due to magnetic USB sockets on the RPi) but that’s been discussed lots in other threads.

Could someone give me some clues on a clues on some points please:

  1. How does the data from the 2 IMU/compasses get merged/switched in ArduCopter? (as there only appears to be one device in Mission Planner)

  2. When rotating the copter the Mission Planner heading changes, and then slowly settles to a steady value - perhaps over a couple of minutes. What’s going on? It makes it impossible to do a proper swing (at the moment I’m using the standalone board without RC or motors, so its not armed)

  3. Is there a point at which I can get the Corrected heading without a delay? I’m aware there is an example in AP_Compass. Haven’t yet checked if this uses the offsets

Any info would be much appreciated