Switch timeout handling to explicitly use INT_CANCEL since tdserror() converts INT_TIMEOUT to INT_CONTINUE