Everything you describe should already happen with the web-ext run
command you described in your first post? Using a base profile is the best approach for having things like bookmarks pre-loaded.
Did you experience any problems with outdated profiles after major updates?
Firefox should apply any required changes to the profile whenever it is started. So you shouldn’t see any inherent issues, though at some point old migration code might get removed, so you would likely want to write your updated profile to disk every now and then.
Have you experienced problems with clean profiles? Whenever I use a clean profile and load a temporary add-on, the preference pane (options_ui) doesn’t show up in about:addons.
If you don’t have your extension ID defined in your manifest.json that might be worth a try. Else, the web dev tools console should have details on what’s going on (or at least a cryptic error).
If you are displeased with some details about web-ext all of it is open-source, so you can use the pieces it uses for the run command that you like and assemble your own.