А если для этого использовать сетевые переменные. По событию (решить с каким интервалом) передавать данные пачкой от мастера к слэйву. Если слэйв не получил данные в течении определенного времени, становится мастером и начинает сам посылать данные другому контроллеру. Среди данных должна быть переменная, которая все время меняется, чтобы узнать момент прекращения передачи данных.