Who sends the USB SYNC/EOP fields, host or device?
Your understanding is correct. USB packets go both ways, so SYNC, PID, DATA, CRC, and EOP are formed by whoever sends the particular packet. And yes, a device (at HS rate of signaling) must respond in 192 bit times (400 ns) to standard requests. [the host, however, will wait 1700ns before declaring time-out, to accommodate for other propagation delays along the link]. And yes, device clock is normally asynchronous to host clock. But both clocks must be within 500ppm of nominal frequency for successful communication at HS rate, and 2000ppm for FS/LS links. And yes, every USB receiver has oversampling and uses the received SYNC field to find right clock edge and sample the incoming data correctly.

Speaking about what needs to be done, all these operations use well established hardware algorithms, which are usually implemented in a hardware block called "USB PHY". It does all these functions of clock-data recovery (CDR) on receiving, NRZI decoding, and checking errors, and SYNC pre-pending, NRZI encoding and EOP attachment on transmitting. Unless you are designing some revolutionary new technology of PHY implementation, you normally shouldn't worry about CDR, SYNC, EOP, etc, the USB PHY does all this for you.