I'm moving users from one NE instance running ZCS 7.1.4 to a new one running ZCS 7.1.4 using this method I got from Zimbra Support:
Export complete mailbox using "zmmailbox" command and import the same on other server.

a. Export account : zmmailbox -z -m user@domain.com getRestURL "//?fmt=tgz" > /tmp/user-export.tgz
b. Copy/Rsync/scp the exported file to the remote server.
c. If the domain name is different, then create the domain or else no need to create the domain.
d. If the remote system is using the same ldap you need not create the user accounts or else you just need to create the user accounts on new server (we can use shell script for for creating bulk user accounts).
e. Locally on the remote server run the below command to import the account :
zmmailbox -z -m user@domain.com postRestURL “//?fmt=tgz&resolve=skip” /tmp/user-export.tgz
f. If the import works then update the mailhost to point to the new host :
zmprov ma user@domain.com zimbraMailHost 'newserver.com'

The process works fine until the last step:
zimbra@mail:~$ zmprov ma user@example.com zimbraMailHost 'newmail.example.com'
ERROR: service.INVALID_REQUEST (invalid request: specified zimbraMailHost does not correspond to a valid server service hostname: newmail.example.com)

The hostnames have been changed to protect the innocent but they do resolve and migrated users can send mail from their mailbox on the new server to their own mailbox (or each other's mailbox) on the new server.

The process works fine until the last step:
zimbra@mail:~$ zmprov ma user@example.com zimbraMailHost 'newmail.example.com'
ERROR: service.INVALID_REQUEST (invalid request: specified zimbraMailHost does not correspond to a valid server service hostname: newmail.example.com)

That error usually means exactly what it says. You can verify the settings by going to the Split DNS article and running all the commands in the 'Verify...' section of that article - details of the format of the config files and expected output are shown for verification.

That would depend on which host this /etc/hosts file is located. You're talking about two different servers, aren't you? In your examples above, the first one is the correct format but obviously the second line in there would change depending on the server IP & hostname.