That sounds very strange, the length of the displayname of the VM normally has nothing to do with this.
But you didn't use the RunAsync switch it seems
$task = Get-VM -Name $vm.Name | Move-VM -Datastore "Test Datastore" -Destination VMHOST1.NET -RunAsync
You don't get a Task object when you don't run the cmdlet in the background with the RunAsync switch