Storing every individual update to the posts being updated over time?

One option could be to create a private (show in Dashboard, hide from front-end) custom post type (e.g. article_section). You would relate these sections to a single post (Article) with the cpt’s post_parent property so that the sections would become the children of the post. WP doesn’t really care if the child posts have different post type than the parent post. Querying parent-children relation (one-to-many?) is easy and efficient.

Then create a custom dynamic block which, when added to a post, would query the post’s child section cpts and list them in publish date order (newest first). This list can then be manipulated with js to, for example, change the layout. Additionally you can create an ajax call to WP REST (or admin-ajax, if you prefer the old way) to periodically check for new child sections.