Don't use the HSI clock, that's not specced for USB use. Also, drop the unnecessary delays that were working around old bugs.
README
This example implements a USB CDC-ACM device (aka Virtual Serial Port) to demonstrate the use of the USB device stack.