Thanks to sliptonic for digging into the dog-bone and finding out exactly what part of my design triggered the bug and kudos to 'thunder for finding and fixing it and adding the missing error trapping. Since AreaPy is such a low level function this will add to wider stability.
Since it seems there was no error checking on allocations in this file, maybe it would be worth a note to do an audit of similar foundational geometry files for error trapping on object creation. This could pre-emptively fix other later bugs ( or possibly existing ones ) if there are similar unprotected allocations at this level.
It's nice that my model, designed to be a critical test of hardware accuracy, also tested accuracy in the software geometry. As sliptonic commented earlier, the two are not unrelated.
I have seen a couple of other oddities which were not worth reporting as bugs but it will be interesting to see whether the <= change tidies those up too, once this is merged.