Following up on
return new FileStorage(config_get_config_directory()); in it.
The current suggestion is to pass an object which looks like like a precompiled container containing the config storage (complete with an event dispatcher and conf override), the php storage and the classloader to the DrupalKernel. An optional callable overriding FileStorage will be provided. This way a) the config storage objects in most cases won't need to be instantiated b) we get the most speed which is crucial at this extremely early stage c) FileStorage is not hardwired.
As for overriding the services in the container itself, simpletest can add a bundle which adds a compiler pass overriding the services. Compiler passes run after registering services.