This is still an issue in 2019. I found a pretty good solution to it that allows you to use MoveTo with an Actor while still preventing the AI from moving off the NavMesh and getting stuck. Basically I just created my own very simple Decorator Called BTD_CanMove where I check that the Actor the AI is trying to move to is also on the NavMesh. I then add that Decorator to my MoveTo node in the Behavior Tree.
Hope this helps!