Two way communication between one master and multiple nodes
An alternative to I2C, you could consider CANbus for this solution.  It is arguably more complex, but slaves would be able to communicate back to the master on the same bus without needing a GPIO to indicate they have data available.  Also, collision detection is built into the design of the physical layer and protocol.

CAN controllers are available relatively cheap, although you need a transceiver for each node.

Other common multidrop buses you could consider:

RS-485: Simple to use, but you would be responsible for all the addressing.  I2C at least builds that in. 

SPI: Useful if you have the I/O to spare for a slave select line for each node.  Based on your description above, this would probably not be the best route.