In my case, using m1.small, I followed this doc to create a custom AMI.
I think the reason it kept booting forever is the opsworks-agent files are still there. See step 4 under To create a custom AMI from an AWS OpsWorks instance, you'd need to stop agent and delete it's files.
The complete cycle improved from ~25 minutes down to ~10 minutes. By the ~11th minute, it's on LB health checks stage.
Hope that helps.