1.) No. If a function is able to deliver data, it returns immediately. If not, it waits the specified timeout value and gives up then (returns).
2.) I don't know the maximum values and it is not really important: These values specify timeouts for read or write access of operations between the Winusb device driver and the device hardware. The minimum value (read+write) is 0ms, which makes no sense. It makes no sense to wait more than some seconds for an answer to the device. Just keep the default values. Why should anyone give the driver e.g. 10minutes to get a reply from the USB hardware?
3.) The CAN hardware uses 32 CAN frames FIFO buffers. Writing to the hardware is NOT buffered by the device driver itself. Reading is buffered as list, no message will be lost as long there is enough memory to store it and you do not close the connection.
Practically, you don't need to care about that. Nothing gets lost.