Arduino hangs?

On a first glance, I can't see an issue in the code. Can you add some more serial prints to zero on on where it crashes?