publish_post plugin hook doesn’t always pass $post->post_content

No, no hook for this requirement. But the hook save_postworks on all changes and you can check for the current status and do it only, the status is in the right value as your requirement.