The oscillation is almost certainly due to mismatch of the pixi camera frame and the imu buffers - is it possible your pixi/processing system slows down sometimes (or even speeds up?) Arducopter precland is tuned for precisely 20ms delay between the camera taking the image, processing it, transmitting it, and the precland estimator receiving it - I believe this value was chosen because it most closely matches the irlock system. If this capturing/processing/transmitting time differs (eg in different lighting conditions, does the camera exposure length change?), then it won’t match the 20ms delay and then the incoming data doesn’t get slotted against the correct imu buffers. This leads to it over or under correcting. It also depends on the nature of the movements that the craft is making - slower, smaller movements are dealt with much easier. If there are larger, sharper movements then this behaviour is magnified if the buffer alignment is out.
Performance in the final meter of descent depends on the tuning of the copter and the vision system. A well tuned system will land spot on almost every time (see the videos https://github.com/goodrobots/vision_landing - once I had a well tuned system it landed within a few cm every time).
The raw estimator acts on each individual message/vision detection individually so it can appear quite jerky, although if the system is not well tuned it seems to cope better. The KF takes each message and inputs it into the filter so it effectively gets smoothed out over time (is the best I can describe it!), so while it provides better performance on a tuned system, on a not so well tuned system it can make things much worse.