Neat use case for data channels!
Be aware, you are not actually using UDP but SCTP when using data channels which supports a variety of partial reliability modes, including full reliable & ordered mode as well as completely unreliable & unordered mode. And it’s very likely that it runs in reliable & ordered mode if I interpret your code and the code of PeerJS correctly (the reliable flag does not exist any more and maxRetransmits: 0 is deactivated). Unordered mode does not seem to be available in PeerJS. Thus, I would not recommend using PeerJS for data channel projects since the code is pretty outdated.