Letting the narration set the scene length is the right call, and it's the reason edits stay local. One catch with generated voices: regenerate the same line and the length often shifts by a few frames, which can move every scene after it. Storing each measured duration with a hash of the line text, and only re-measuring lines that changed, keeps timing stable between renders. The other weak spot is the screenshots. They go stale the moment the UI changes, so I'd capture them with a script, like a Playwright run against a seeded account, so refreshing every scene is one command instead of a manual pass.