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.
The tapsh does this automatically (just exit it). With TOPCAT, uncheck “Synchronous” 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. tapsh does, and it’s probably the way to go if you have larger jobs to run.