I have an idea, but it may not work if the helicopter is hovering (very) still in the air. First, differentiate the unit's vertical position to attain it's vertical velocity. Might need to do this at a high rate, maybe 100 milliseconds per iteration, depending on how fast you'd want the landing event to register. Then add the unit's forward and lateral speeds (taken via differentiation again) to the result of the vertical. After doing this, you'll need to apply a peak following algorithm to the summed values, which is a function that will instantly increase in value if it goes above it's "decay", and the function will decay if the input value is lower. If you are familiar with electronics, it would look like the output of the bridge capacitor following the full wave rectifier in a power supply circuit, it just decays slowly after the input has ceased. And then maybe after that, use the InAir() function or whatever is used to report the aircraft is indeed flying, and if it returns true, add some large number to the derivatives' sum to offset any lack of motion in the air. Then compare the final sum to a small number and if it's below, most likely the thing has landed or crashed.
Rather difficult to explain completely, if you want some help with the math, send me a PM.