How long does it take to do a table scan for this table, including reading the LOB data? Multiply that with 346,161,152 and you get how long time it will take to do a full shrink, roughly. Then reduce some, based on at what point it reaches the target file size. Still a very very long time.
Say that you shrink "only" 1 GB at a time. That is 131,072 pages. Say that "only" 100,000 of those pages are LOB pages. Still a hefty number of table scans!
Think about what shrink does. It moved pages from the end of the file to the beginning of the file. For a LOB page, SQL Server need to adjust whatever points to this page to reflect the new page adress. A LOB page doesn't have a back-pointer, so it needs to do a table scan for each page that is moved. That is a whole lot of table scans!
Of course, the shrink will stop when it gets to the target size.
There are some details buried in here, but it doesn't change above. Data for LOB types can be in-row (when it fits), but since you say you have 2639 GB LOB data, I assume those are in fact LOB pages. A lob page can be shared between rows, reducing space usage compared to the predating design - or it can be dedicated to a row. There's also a B-Tree structure for the LOB data (allowing "searched in the middle") but the nodes in the tree are not necessarily pages, they are data on those pages. So, regardless of the details, it if is indeed a LOB pages that is moved, then all pages need to be read to find out which of those pages might point to this moved LOB page.
In your case, just live with the free space. It doesn't hurt anything and it doesn't make your backup significantly larger (since backup only backs up used extents).
REBUILD
on the clustered index of that table and then try shrinking again.