Yes, FX3 can be used for your application.
1. But, for each pixel clock, FX3 can be configured to sample 16 bits. Since the sensor is giving only 14 bit data, 2 undesired bits will also be sampled. We can make sure that those two data lines be pull-up/down so that for each pixel clock either 1/0 is sampled on these lines.
On the Host side application, if needed, these extra bits for each pixel has to be removed (so processing is needed on the Host side to remove these bits).
2. The pixel clock cannot be more than 100MHz.
3. Constant frame rate cannot be guaranteed as this depends on the Host. If Host is able to take the data from FX3 fast enough then the frame rate can be achieved. If the Host slows down for a significant time during video stream, such that all the buffer in the FX3 overflows with video data, then frame loss is inevitable. - In such scenarios, however, the streaming will not stop. There will only be a drop in frame rate at that moment. This I think will be true with any controller.
Please refer to this app note - https://www.cypress.com/documentation/application-notes/an75779-how-implement-image-sensor-interface-using-ez-usb-fx3-us…