Update on this
The replacement headliner finally arrived after nearly 3 months. Dealer wanted the car for "several days" so they agreed to give me a loaner.
I drop off the car Monday morning. Don't hear anything that week so called them Friday afternoon for an update. "A couple trim pieces were damaged during the swap and we need to order them". Later I find out there's no ETA for the parts due to all the usual reasons.
The 2nd Friday I finally say "If the car is drivable, I'd like to get it back". Sure thing, it'll be ready for you Monday. No call. Tuesday I go in to see what the deal is. It turns out they tore the new headliner during install. It's very small but and almost invisible, but it's torn. So basically they have to order another headliner. The roof console got dented during replacement, so that's on order now too.
At least I have the car back for now. I really disliked the loaner (2016 base Passat with 77K miles).
So it goes...