This patch in OSGi shows that there is something wrong with AbstractDeploymentContext.setRequiredStage().
You shouldn't have to explicitly do the ControllerContext.setRequiredState(), that is an implementation detail.
I think this is how it already was, but you changed it at some point. ;-)
* http://fisheye.jboss.org/browse/JBossAS/projects/jboss-deployers/trunk/deployers-structure-spi/src/main/java/org/jboss/deployers/structure/spi/helpers/AbstractDeploymentContext.java?r1=85312&r2=89967
So, I guess we need to change both things?