So I upgraded from using the CyUSB.sys v126.96.36.199 to the CyUSB3.sys v188.8.131.52.
The functions calls were all the same so that was nice. I had to add CyUSB30_def.h to my project in order to make it compile with the new driver.
I created my own INF file to install the driver. Removed most of the entries from the sample INF that was provided and added some things so that the device ended up being listed under our own Device Type in Device Manager.
End result: It might be faster, possibly 5-10s, but it doesn't solve the problem.
It still takes far too long when I call the Open command.
The streamer application that comes with the FX3 SDK uses the CCyUSBDevice::Open() API. Kindly, refer to this implementation. Also, use the streamer application and check if it is quick in identifying the devices.
I tried the steamer program. The open command is taking 5s. I then went back to my program and it is now taking 5s. For now the problem seems to be resolved.