ReadIntervalTimeout = MAXDWORD, остальные нули, то ReadFile будет сразу возвращать количество считанных байт. Затем можно вызвать еще раз, чтобы дочитать оставшиеся и т.д.
Если ComTo.ReadIntervalTimeout = MAXDWORD; ComTo.ReadTotalTimeoutMultiplier = MAXDWORD; ComTo.ReadTotalTimeoutConstant = TIMEOUT; то ReadFile будет ждать данных максимум TIMEOUT.