TAP jobs can take hours or days. To support that, you usually run your TAP jobs asynchronous. This means you do not have to keep a connection open all the time.
With TOPCAT, change the Mode selector to “Asynchronous” and run a query (any will do). In “Running Jobs”, select the URL and paste it somewhere.
Then restart TOPCAT, open the TAP window and paste the URL back into the URL field. If the job has finished, you can retrieve the result.
There’s a bit more to async operation; for example, the server will not keep your jobs indefinitely (see “destruction time” in the resume tab). TAP lets you change these values, though TOPCAT doesn’t offer an interface to that as of now. PyVO (for instance) does, and so does stilts.