> - ensuring __new__ is a static method
This shouldn't be necessary. __new__ won't be a method at all,
and not even exist. Instead, a type may or may not fill the tp_new
slot.
> - ensuring the standard attribute lookup machinery is configured
This is what PyType_Ready does, no?
> - hooking up tp_as_number, tp_as_mapping, etc
This is indeed missing. Robin Schreiber is working on a patch.
> - ensuring GC support is configured correctly
This is the responsibility of the caller, as always with C types.