How to store data for posts/pages built with drag-n-drop builder?

The only reasonably portable option is to store content in post content.

Anything else (be it shortcodes, post meta, or options) will need a custom code to access and display it, either yours or some other if site parts way with your plugin.

The reasonable approach for data portability I’ve seen is storing a certain amount of generated HTML together with content (which would keep content available and visible by itself) and progressively enhancing it when “builder” code is active and running for full effect.