Replace unconditional sandbox cleanup in execute_plan's finally block
with conditional cleanup gated on an explicit execute_succeeded flag.
On success the worktree branch survives until plan apply merges it
into the project (spec §13256-13260).
- Add execute_succeeded flag set after successful execution
- Guard finally-block cleanup with 'if not execute_succeeded'
- Remove unused _commit_exc variable in _commit_worktree_changes
- Add BDD test scenarios (sandbox_cleanup_conditional.feature)
ISSUES CLOSED: #10872