Following up on this problem led me down a rabbit hole of a bunch of bugs and code changes, but in the end I think they're all irrelevant. I mention them only to tell you why it took me so long!
I think the NaNs you are seeing are expected. I took your first shared example, for instance, and tracked down the NaNs I saw there, The cause? A two-month trading suspension of RGA because of a spin-off activity from MetLife. It feels like a one-off, but there are one-offs everywhere!
When we built set_universe we tried to avoid NaNs because they were a pain. We just can't avoid them, it seems - they are everywhere.
You probably have read the line in the help document where it says "If a stock is not present for the full quarter (due to an IPO, merger, bankruptcy, or other corporate action) it is excluded from the universe for that quarter. This behavior will be modified in the future to minimize any survivorship bias." We were trying to avoid NaNs, but we knew we couldn't forever.
I think your early question, "what is the recommended way of dealing with them?" is the key one. I don't have any specific advice for you yet. Let's see what other quants do with the problem, and we'll see how to add it to the product.