at random points, a leash attached to another mob will break while the mob is traveling in a minecart. I've been using a villager leashed to a pig in a minecart to simulate a villager moving on command. You can recreate this by spawning two pigs, one above ground one below ground and use a leash on the one above ground. Exit minecraft and open up the above ground pig in an external editor such as NBTexplorer, or the NBT filter for minecraft (suggested). Go into the above ground's leash compound tag and edit the UUID tags to match the underground pig's UUID tags. That way, the above ground pig is now attatched to the underground one. Change the id tag from pig to Villager so that it is now a villager. Lastly, go back into minecraft and move the underground pig into a minecart and move the minecart. every once and i while the leash breaks, i'm pretty sure this is a bug but not positive. So if this isn't a bug could you please contact me and tell me why this doesn't always work because the map i'm working on is depending heavily on this method.