Fix infinite loop caused by edge case during terminus_job_poll()

## Problem / motivation
In cases where `terminus_request()` errors (e.g. a timeout), it will return `FALSE` and close the curl handle / resource.  Normally, this is fine and doesn't matter...  But when `terminus_request()` is called by `terminus_job_poll()`, it's possible to get stuck in an infinite loop.

Underlying cause is that the curl handle is statically cached in terminus_request...  Although there's a check to re-initialize it, the check isn't explicit enough (specifically, `$ch` will be an integer when closed, which is truthy).

## Proposed resolution
Explicitly check that the curl handle is a resource. Also, increase the timeout to match the server-side timeout (which appears to be 45 seconds).