I've had limited experience, but this is what I've seen myself:
1. it is asynchronous, slaves can 'catch up' when they reconnect to the master and read the binlog. It is done on any write to the database. e.g. insert/update/ddl change.
2. not familiar, and after googling it sounds like this isn't supported. Do you mean cluster?
oh I did some more googling. you can use settings
auto_increment_increment & auto_increment_offset
to avoid id clashes on each server.
I don't see how this will avoid duplicate data though.. e.g. if you use unique constraints in your application.