According to the docs, TAB isn’t included in the keys that trigger a move event.
In any case you need to stop propagating the event as it trickles down throught the visual element tree. The default value of the TrickleDown parameter is NoTrickleDown, meaning it will recieve the events as they bubble up, which is too late for your use case.
Like I said, you were getting the callback as it was bubbling up, so well after the focused element had changed from hitting tab, and where stopping propagation would only stop it from further bubbling up.