This is exactly what I was trying to say, when I said WordPress makes these things super complicated.
Further testing shows that issue #12897 is indeed related: when switching a post from draft to publish, the first REST API pass will say
draft > publish
without$_POST
data while the second pass will saypublish > publish
but with the$_POST
data. So there is actually NO way to both test for draft to publish and have up-to-date [post metadata] available at the same time …