You may have to consider 115200 cannot work. Be sure to check the USB speed with the output from dmesg.
dmesg says the USB is handled by OHCI (wandering why not EHCI instead? .. i will try to recompile the kernel and see what happens)
and the device3 (arduino) is USB1 full speed which should be 12M bit/sec
in theory it should be fine enough to handle 115K bit/sec
the first problem is: what happens if linux gets a long burst stream (128x128+2=16386byte)
in where every single URB/bulk has 1 byte instead of 64 ?
supposing the baud rate drift is not relevant
for 115200bit/sec it means something like 10Kbyte/sec -> 10K URB / sec
i trust the kernel
is perfectly able to handle it, even if …
… it's not an ideal situation and probably it is not the best optimized idea
teensy-v2 has no baud generator, so no drift issues
and the linux kernel side uses serial-class instead of a serial-driver, that permits to send 64byte per packet
it means that you know exactly what happens in the chain, so you could organize your firmware that way
and in the linux application side you could also use read(fd,buffer,64) instead of 64 times for {read(fb,&ch,1)}
just considerations … unfortunately i can ask the team to change the hardware
btw i am suspecting the problem is related to the % error due to the baud rate (frequency drift)
like you say, guys (thank your for your considerations)
or something in the hardware layer