I2C se define desde cero para operaciones con varios maestros. Entonces, eso es un gimme cuando todo está operativo, pero debe asegurarse de que una MCU fallida no coloque la línea baja. Esto puede ser difícil de asegurar.
Los ADC deben estar bien para muestrear el mismo punto, pero dependiendo de la impedancia de salida del punto de detección, la impedancia de entrada del ADC y la arquitectura del ADC, puede ser prudente almacenar por separado el punto de muestreo para cada MCU.
Para digital, siempre que pueda garantizar que no habrá ninguna contención de bus, esto también debería estar bien. Una resistencia en serie puede aliviar los efectos destructivos de la contención del bus, en caso contrario.
En cuanto a las salidas, no puede conducir la misma señal directamente desde ambas MCU con salidas push-pull. Tal vez podría usar salidas de drenaje abierto, pero si una MCU entra en la maleza y fija la línea baja, pierde el control de la señal. Podría usar puertas lógicas para combinar esas señales si la señal de control se comprende bien y puede garantizar que las MCU operarán en el paso de bloqueo y no interrumpirán la sincronización de la señal.
Hay MCU de doble núcleo diseñadas específicamente para esta aplicación (seguridad / redundancia). Puede tener más sentido utilizar uno de los que están pendientes de su aplicación y la sensibilidad a los costos (son dispositivos caros).