Like std::thread::JoinHandle for a GLib thread. The return value from the task can be
retrieved by calling ThreadHandle::join. Dropping the handle “detaches” the thread,
allowing it to complete but discarding the return value.
Blocks until the associated thread returns. Returns Ok with the value returned from the
thread, or Err if the thread panicked. This function will return immediately if the
associated thread has already finished.