I don’t think I have a preference between (A) and (B) myself, but perhaps others might. I believe either could work.
WebGL certainly can efficiently render vector tiles (that’s what we’re working toward as well, in CesiumJS!), so I think the performance costs you’re seeing with the background rasterization are more specific to that setup and some unknown details in the client-side MVT → MapLibre → image → CesiumJS pipeline. So MapLibre+three.js could in theory work well here, but I don’t have experience combining the two in production.