You could setup mailcatcher on staging to address the accidentally emailing people issue.
I believe the only supported way currently to sync data is to use the import/export tool.
If you wanted something to just sync post data and new users you will probably need to write your own sync functionality using the discourse_api. Using the api you should be able to get all the new posts and users, but I don’t think there is a good way to bulk insert or modify the dates on insert to match production using the api.
You could also find the right tables in postgres and export and import those directly.