Explanation for 512 Byte Limit on Arduino BLE Characteristics

Hi profrob. I suggest using the standard ArduinoBLE library functions for this transmission, except when before transmitting the packets, you should include a buffer which holds <27 bytes of payload (3 packets at a time). You can also try larger values <125 bytes but I had some reliability issues with the board stalling.

Send these packets to a peripheral or relay board to be sent serially or through another BLE transmission to your computer/device. You could also run the Bluetooth transmission concurrently to your board's CPU activities for more speed optimization.

With this method, I was able to get 40kbps which satisfies your desired throughput.