One of WordPress’ block editor’s “nastiest” quirks is how it deals with “classic” meta boxes, including the Custom Fields panel.
It’s why in my ActivityPub add-on plugin, I had to “delay” federation to a later hook (than transition_post_status [and use a static variable to temporarily store the new and old post statuses], but only when rather specific conditions are met).
Anyhoo, I literally wrote about this countless times, and still occasionally get it wrong.