Because the Weak struct is defined as having LazyUsize for the address, it does not maintain pointer provenance and thus fails when run under MIRI with -Zmiri-strict-provenance.
The solution would be to define a LazyPtr type that utilizes AtomicPtr instead of AtomicUsize.