Interesting idea. I started this comment disagreeing with you, but as I was typing I realized I was wrong.
NaN and missing are indeed the same concept.
NaN is the result of 0/0 and Inf/Inf. In real life we’d solve such problems using L’Hôpital’s rule and get the numeric value, but the computer doesn’t always get to do this so the numeric value is unknown.
NaN is a misnomer: not a number. But it actually is a number; just a number whose value we don’t know.
Which is exactly what missing means when in numeric contexts.
Probably not helpful rehashing this here, but there’s been a lot of discussion on this when missing first came around and since then, and the reason is exists is precisely because it is meant to be distinct from NaN (and nothing). Here’s an old SO question:
But if you look around you’ll certainly find loads more.