handle
Binds handler to type. retry overrides the runtime default for this kind; it lives here, per kind and code-defined, so every node resolves the same policy (retry policies are functions and cannot be persisted per enqueue). Binding the same kind twice is an error.
timeout caps one attempt's wall-clock duration: on expiry the handler is cancelled cooperatively and the attempt fails with JobTimeoutException, which the retry policy then sees like any other error. Null defers to the runtime default, itself null by default: without a timeout an attempt runs until it returns, however long that takes, with the lease renewed by heartbeat all the while. The timeout is independent of the lease: the lease detects dead workers, the timeout bounds live ones.
Binds a suspend lambda to type. The lambda is wrapped in a JobHandler, so it has the same semantics as the object form and can be swapped for a class later without touching any enqueue site. retry and timeout as in the object form.