I am booting from SD. It turns out the GPS hardware was on. Since the 4.0.4 build does not have GPS built in, I suspect it was looking in a memory spot it should not hence causing the system to reboot.
I disable the GPS and it doesn't crash anymore.
However, any idea on how to set the apps default VM to 32MB instead of 16MB in ICS? I think it is changed to 32MB in Jelly Bean. Currently I am working from the source code available on the git server.