newMessage.$save()
is asynchronous, so if you want to get a hold of the response data you should do it in the success callback function:
newMessage.$save(function(msg, headers){
console.log(newMessage.id); // note, at this point msg === newMessage
});
See the docs