What we are working on right now is removing the concept of a distinct configuration phase altogether, resulting in a single execution phase. Configuration will be modelled as tasks which have inputs and outputs like normal Gradle tasks.
There are some core plugins that are using this mechanism (which we call “new configuration model”) it but it’s still very much work in progress and will definitely change over the next couple of months as we iron things out. I don’t think that you should base your plugins on it as of now (because it’s far from feature parity with the current mechanism) but if you’re interested then have a look at the new JavaLanguagePlugin and the plugins it applies to a project.