
Assertion semantics closely mimic C++26 Contracts evaluation semantics. This brings our implementation closer in line with C++26 Library Hardening (one particular benefit is that using the `observe` semantic makes adopting hardening easier for projects). (cherry picked from commit 3eee9fc2c4d1973904b1a26fa96a8c7473ef6a5e)