It is important that we people sync configuration is done against the same codebase in both the target and source instance. People have been surprised that you can't sync configuration from Beta-13 to RC-3. This issue will get worse with contrib under active development.
We also need to ensure that extensions are installed using the same version of the extension so that any install hooks are the same and we need this to be able to solve without storing a copy of the original config in config - this way we can store it in state.
When we run update.php write the current versions of the extensions to core.extension. When we install an extension or run updates write the version to core.extension. When we update or install a module store the schema version in core.extension. Use this information to ensure that when we import a full site configuration the codebase and database are in the same state.
Review all of the UI text
User interface changes
Additional configuration import validation messages
Data model changes
versions key added to core.extensions. The key holds a list of installed extensions. For each extension the version at install time is stored plus the version the last time update.php is run. For modules, the schema is also stored.