Interesting that you can still use contactless despite contactless setup detecting compromised environment... The detection is expected however...
Seems your OnePlus 9 Pro may be one of many OnePlus devices with broken keymaster implementation... Does Momo app say "Broken TEE"? (If it does, TEE OS is not really broken but key based attestation is.) Also, does YASNAC say BASIC for evaluationType?
If this is correct you won't need USNF to trigger fallback to basic attestation; device is already falling back to this due to broken hardware key-backed attestation.
You still need to add Google Play Services to denylist, specifically the droid guard/attestation process com.google.android.gms.unstable and the main process, com.google.android.gms, in order to hide root from gms. Seems this is what you're missing...
You also need a solution to set sensitive props to non-suspicious values. I believe Shamiko includes this function. (If not, MagiskHide Props Config module goes this with
nothing configured; MagiskHide sensitive props are adjusted just enable by default.) With Shamiko active (denylist disabled / not enforced) you should now have passing deviceIntegrity. Nb, SafetyNet API is now depreciated; Check deviceIntegrity with Play Integrity API Checker.
The only benefit you were gaining with USNF was that it does hide root from gms, but if you want to keep it instead of adding the GMs processes in denylist manually there should be no issue... It also duplicates the sensitive props adjustments...
Chase have started detecting Zygisk injection... This should start working with new native bridge Zygisk loading (akin to hidable Riru framework/memory hiding) + Shamiko (already supports hiding native bridge based hooking memory) which is currently a WIP (2+ months already) but should be seen in Magisk 27.0... I've put alot about native bridge Zygisk refactoring in Magisk Discussion thread recently...
Chase works in Alpha fork POC for me.

PW