Hmm... Perhaps this is a bug in the way tapestry-cometd fires the onActivate.
Can you fire up a debugger and inspect the EventContext object passed to onActivate() in 1. the normal page render 2. the tapestry-cometd component I think there's something preventing type coercion (which passes through to ValueEncoder). I'm guessing it's a different EventContext implementation in the 2 cases.