Probably ACP should trap NaN, as this is an actual value that tells you something, but it is unlikely that anyone else will run into my problem.
If I request the position and I get trash (NaN is literally "Not a Number") what should I do? And should I check every number from every device for NaN? And then craft a "better" error message depending on what's being done with the number? There's limit to what I can reasonably do to paper over bugs in devices :-) :-)

I am glad you got the root of the problem!