USB Busy when transmiting data
I have finally solved this problem, be replacing the entire STM32 HAL driver for USB CDC back to the Standard Peripheral library for USB CDC! 

and there is no more problem with it! I run into many issues using HAL driver from STM32, it is very buggy! if you encounter problem with it, try to switch back to Standard Peripheral library!