Some sort of slotting would be needed I think if the communication overhead could be somehow manageable.
In a single gateway scenario which is what you have focused on in the initial simulation I think. In an Otta, Class A scenario maybe it would be as simple as the network server allocating the time slot as the network address while keeping track internally of the time on the air requirements for that device to build up the slot allocations. So if each address is a fixed unit of time it might allocate addresses 1,4,5 where address 1 gets 3 time slots, address 4 gets 1 timeslot, address 5 gets 2 time slots and so on.
.
Then periodically ( 10+ minutes ) the gateway sends out a sycnronisation beacon with a time slot allocated to handle joins.
Beacon
slot1 → address 1
slot2 → address 2
…
Free Slot(s) for Joins
The mote would only need to listen initially for the beacon and determine when to Join. After that it would synch to it’s allocated time slot based on it’s allocated network address so there is no additional slot assignment traffic…
Of course this is ‘best case’ with every node cooperating but already implies some limits such as all devices would only have a send window once every beacon period.
Thanks for the important work on collisions