Unfortunately, tcdrain didn't help to solve the problem. But actually it's not bad anymore. Nobody says that packets are stuck inside modems. They could be stuck somewhere on providers' routers.
So...
There are c source of cdc-acm.c, sierra.c, option.c in drivers/usb I was able to recompile (create *.ko files) and use after that.
For example, drivers/usb/class/cdc-acm.c overrides tty method:
741...
Looks like I'd have to ask modem manufacturers if their modems can return how much data are inside modem buffer....
usb_submit_urb puts data to HCD (Host Controller Driver). Does HCD put data to...
All the USB modem drivers I test (cdc-acm, option, sierra) send data to modems by using usb_submit_urb call.
When packet is supposed to be sent kernel calls write_bulk_out_callback method informing...
Linux provides flow control for USB modems so all the packets reach destination without loss.
It means Linux knows when modem buffer is full. It would be good to know how Linux checks it.