Thanks a lot thombles! I was thinking about something like this. What caught my attention is that you say we have to split messages that are too "large". With my old RFCOMM implementation the average packet size was 340 bytes, so I'm a bit disappointed. Is this something unavoidable? And if yes, am I going to need something like this:
loop until the whole message is sent:
central sends several bytes of the message to a characteristic
peripheral reads it and writes a checksum to another characteristic
if crc failure:
restart transmission