Currently, the first time Coder Desktop dials `/api/v2/tailnet` is within the main `Controller.Run` loop: https://github.com/coder/coder/blob/fb0e7a21a7210a60784a0849fb7c51dd3091dd2f/tailnet/controllers.go#L1420 This means the tunnel sends the `StartResponse` with `success` set to `true` without knowing whether or not it was able to dial the coordination endpoint. This results in a poor UX if we're not able to dial it initially; Coder Connect appears functional but is not - the only sign something went wrong is the `No workspaces` message, and N error logs, for each retry attempt. Instead, we should fail fast, and send a `StartResponse` with `success` set to `false` if we fail to dial right after starting.