Compass inconsistency on power-up with fake GPS and EKF#3

Dear community!
I use Arducopter 3.5.5 with PixHawk2 in indoor environment via injecting fake GPS data via MAVlink HIL_GPS message. We use EKF3.
Each time we turn the copter on, the compass diverges (starts rotating), this is accompanied by strange attitude reading. The divergence stops after one or two reboots.
We tried a lot of things - compass calibrations, replacing Pixhawk, replacing compass, various combinations of which compass to use as primary or as single compass. Nothing helped. This feature happens only after some time (10 + minutes that he drone was powered off), if I turn it on and off after the compass has stabilized, it will wake up stabilized again.
The above feature usually happens when the fake-GPS data starts to be injected and is accompanied with strange attitude reading (the drone’s compass wakes up ok, but when motion-capture is turned on, the attitude “jumps” to 5-10 degrees above/below the level and 5-10 deg roll and then compass diverges as described.) However in some cases, drone wakes up already with “bad” attitude and compass even before the fake GPS data is sent
However, when I switched from EKF3 to EKF2 this issue disappeared. When the fake GPS is started to be sent, there 1 or two GPS glitches accompanied with EKF core switches and then everything calms down and compass and attitude remain stable.
I cannot quantify that, but drone with EKF3 has better behavior, so I’d like to solve the above issue and use EKF3