One last thing and I will shut up until someone that knows more than I do about blinks inner workings comments:
I am using 16 byte datagrams because it is the work case scenario. But even 4 bytes datagrams already start getting missed with the existing timeout. And, in fact, depending on what ones program is doing, even 3 bytes will be too much (I happen to be using up to 5 byte datagrams in my game).