Hi Johne Smith
It could be many reasons for this timing that you are getting;
first, how are you measuring this times (T1 and T2), are you setting any kind of GPIO and checking the output in the scope?
This could not necessary give you the actual time that you mention as a USB specification, it could take some time to pass from a high level API as it is USB_HostCdcDataSend to a low level as it is the hardware when it send data and the checks ack to set the interrupt that will call the callback, so it could be that
"However, the FTDI device can response to the PC host within 1ms", unfortunately we cannot compare a USB embedded application with a USB PC application, first of all, we have just one core that takes care of all the process, in a PC we have more resources available, so yes, a PC host will have a better performance.
Additionally, as my colleagues Carlos mentioned in the thread, the USB-serial devices are CDC class, which use Bulk transactions, so, the latency depends of the Host capacity and workload, so if there happens to be an IN transfer between the USB_HostCdcDataSend, it will uses the available resources as it need it.
Hope this information could help you,
Best Regards
Jorge Alcala