Wire.onReceive(hadler) terminated only one time

Never looked, but as long as an event has been triggered for incoming data, there should not be triggered a new event before the data the event was triggered for has been dealt with. OP's question would most likely not exist if I'm wrong.