I wonder if it would be possible to emulate a USB port on a couple of the GPIO pins. There are a number of Arduino libraries, for example, that implement USB serial entirely in software (e.g. V-USB for AVR). Perhaps something similar could be done with a task? Wouldn't need USB3 but USB2 would be very good.
Given the engineering resources, and CPU frequency/hp required to do it, I think I'd just opt to buy a chip that intrinsically supported USB-FS. If I wanted such an intellectual challenge I'd probably go the FPGA route, doing it in software is just such a half-arsed approach. You might learn a lot about your coding skills, and the appropriate use of hardware/software.