The big part that must be reviewed in the actual code is the builder. It isn't extensible or customizable.
Builder must accept more than one build definition by build. In some case like the use of the dashboard plugin, it is necessary to run more than one goal executed with more than one m2 command, so the user will can run one build definition that execute few m2 commands.
Maven 2 builder should alow to run something different that m2, for example ANT or a shell script. It is necessary to support it because it is required to run few commands before or after the build. Some projects need to do some actions in the build that is external to the POM
I think it would be good to support .Net projects without to use a Shell project. Probably with NMaven.