Ugh, what broke?

Yup, sorry for all that confusion, there has been a change in behaviour in a recent update that "broke" older code.
Now Particle.subscribe() handlers are only getting into effect a few seconds after loop() started the first time.

You can find a discussion about this here