CMDeviceMotion magnetic field responsiveness

I am using https://developer.apple.com/documentation/coremotion/cmdevicemotion?language=objc to messure the magnetic field like a teslameter. And It seem to give the correct values. However when disturbing the phone with metal (creating changes in the magnetic field) - and the metal is removed. The value as if the metal is still there is printed out for sometimes up to 20 - 25 seconds. You would expect the values to immedtly return to what they where before the metal was there - when the metal is moved out of the way.


Here is the code I am currently using


[self->_motionManager startDeviceMotionUpdatesUsingReferenceFrame:CMAttitudeReferenceFrameXArbitraryCorrectedZVertical toQueue:[NSOperationQueue mainQueue]
                                              withHandler:^(CMDeviceMotion *deviceMotion, NSError *error)
     {
         
         double x = deviceMotion.magneticField.field.x;
         double y = deviceMotion.magneticField.field.y;
         double z = deviceMotion.magneticField.field.z;
         double t = sqrt((x * x) + (y * y) + (z * z));
         NSLog(@"startCalibratedMagnetometerUpdates: %f, %f, %f, %f", x, y, z, t);
         
         
         
     }];


Also when comparing with a teslameter found on app store - that app does not get stuck when disturbed with metal - but has its values immediately returning when metal is being moved out of the way.


What is creating this issue and how can I get my readings to be as responsive?