How GPS_AUTO_SWITCH is supposed to work?

This just happened. Plane took nose dive at 35 meters per second and got completely destroyed.

GPS2: uBlox F9P + Helical antenna (30-32 satellites in normal operation)
GPS1: Here3 (16 satellites )

Relevant parameters:

GPS_AUTO_SWITCH: 1 (UseBest)
GPS_PRIMARY: 1 (SecondGPS)
EK3_SRC1_POSZ: 3 (GPS)
EK3_SRC2_POSZ: 1 (Baro)

Something happened mid flight and GPS2 was jumping between completely missing, NO FIX, 2D FIX, 3D FIX. Satellite count was oscillating between 0 and 32. HDOP was 99 several times.

After few seconds indicated flight altitude jumped from nominal 40m to 500m and plane nose dived to ground.

Also EKF lane switch was present from Lane 1 to Lane 2 and shortly back to Lane 1.

It seems like the auto switch did not do anything to save the plane.