Thanks for the response.
I initially thought it was a RACE condition as well, but when I delay the code within the function for 10 seconds, I still get the same results.
I’ve attempted updated_postmeta by only switching the action name in the hook. It does not seem to be firing at all. I added die(); in the first line of code and I do not get any errors, and the output of the file does not change even after updating multiple times. As soon as I change the action back to save_post whatever code I have is executed.
Are you able to try my code (or something similar) and get the expected results?
Also, to add more context, I’m creating the a custom field custom_field_1 in the admin and entering a value from the admin. Using the twentytwenty theme.