Today I realized that I had no idea when it was appropriate to use
hook_post_update_NAME. I have ideas, but I was not sure about the concrete reasons. My gut instinct is that
hook_update_N is for schema and other database-related changes. And, then,
hook_post_update_NAME is for configuration changes and clearing caches once the schema changes have been finished.
But is that true? Does Drupal core follow this pattern? Finding examples in Drupal core was also tricky; I had to switch back to the
8.9.x branch to get a good collection of references.