When I have used two Arduinos and I2c comms, I use a digital out pin on the slave to indicate to the master that I have a message and that I wasn it to send a message request.
I use short messages and a message queue to quickly hande messages and it seams to be very reliable.
I also put an led on the “I have a message pin” which helps with visual debugging.