In my design, one arduino pulls a line high on other arduino, the other arduino polls this pin and if that is high sends the data on I2C bus.
The first arduino holds the line high for 100ms using the delay() method, the other arduino is sending the data during this time, but the I2C receive interrupt is not being triggered.
I have attached a sequence diagram for a better explanation for what is happening.
I suspect that the delay() method somehow is disabling the I2C ISR from triggering.