Ich würde mal das delay(1000); rausmachen.
Denn so lange der Controller im Delay wartet kann er nichts anderes mehr tun undie LED's bleiben wie sie waren.
Ist das möglich?
Es gibt unzählige Möglichkeiten so etwas zu realisieren.
Eine Möglichkeit wäre auch durch ein Signalflanke am Controller 1 einen Interrupt an Controller 2 auszulösen.
Das hätte den Vorteil das das Programm nur einmal pro Signaländerung ausgeführt würde.
Pin Change Interupts gehen natürlich auch.
Auch eine Komunikation über eine der Hardwareschnittstellen ( USART, SPI, I²C ) zwischen den beiden Controllern ist möglich und bietet viel mehr Austauschoptionen als ein simpler Portpin.