If USB CDC is connected and the board sends data, but the host does not receive the data, the device locks up. This is fixed in this commit by having a timeout of 500ms, after which time the transmission is skipped.