Looping with Leonardo

Concur the code looks good. When you say execution stops, what do you mean? How do you know it stops?

With delay(500) it's going to take 25 seconds to fade up and another 25 seconds to fade down… are you sure it's not working? A shorter delay may be part of your solution.

Serial print is a good idea.

-br