In 2005 at least, hit F5 to re-run your query. SSMS will determine it is no longer connected and then prompt you to reconnect. If I recall correctly, 2005 will put you back into the same database while 2008 puts you into your default catalog. A second execution of F5 will actually run the command. I've never had a semaphore timeout but it works for other disconnect scenarios.
Well, you shouldn't ever be using DBCC SHRINKDATABASE, IMHO - if you need to shrink files at all, you should think twice, maybe even three times, and even in the odd case where it really is warranted (hint: this should be rare), you should target each file individually using DBCC SHRINKFILE. Please read every single word on this page.
Anyway, you can see the progress using:
SELECT percent_complete, estimated_completion_time
FROM sys.dm_exec_requests
WHERE session_id = <spid running the shrink>;
Best Answer
In SSMS 18.3, they added the option to turn off the completion time.
Tools > Options > Query Execution > SQL Server > Advanced.
Uncheck the Show Completion Time checkbox.
Start a new query window and execute something... No completion time after query finishes. Yay!