HI,
you are right, is by design i think.
if you run a page (with a PingPong Timer Addin control) calling "page.RUNMODAL"
(from a codeunit for example), "PingPongAddinReady" trigger isn't fired (focus is lost form addin constructor class).
look at these links about some addin problems\suggestions.
http://www.dynamics.is/?p=1311
http://www.dynamics.is/?p=1054
you can use also Freddy Timer Solution (from Freddy Blog)