I’ve created a new add-in OrderKeeper that remembers a tab position when it is closed and restores the position when the tab is reopened. It should address the problem with tabs reordering when a project is externally modified by updating from source control or switching branches. You may also find stable tab position useful when you manually close and reopen a tab.
Download link: OrderKeeper v1.0.0.