Problem with CDC ACM multiple transfers in one interrupt

I created a protocol for packets through CDC ACM, and I send multiple packets if the length goes above 64 bytes. Sometimes I send "request" packets that are received by the nrf52840, so the nrf52840 will receive like 12 requests for data at a time, so I have 12 irq_tx_enable rounds where it sends queued data from a ringbuffer, all in the same interrupt. However, if I don't put an artificial delay between request packets, it fails to send all 12. It will silently fail at around the 5th and move on. Is there an elegant solution to this, without a separate thread to make sure irq_tx_enable happens slowly?

Related