I meant to write this for quite a while and kept forgetting about it...
We've had numerous situations while developing Windows Workflow Foundation workflows in which either the OnTaskCreated or the OnTaskChanged activity would not be called ("fire"). The behaviour was non-deterministic, whereas sometimes it would work and then it wouldn't. E.g. I'd add an arbitrary line of code and then it would work.
Well, long story short, after following all the paths that could normally go wrong, like checking whether the taskID and the taskProperties are properly set, and also to check that all objects could serialize ok, and installing all relevant Hotfixes and Updates etc., I resorted to
a recommendation to simply leave out the OnTaskCreated activity and have not had any problems ever since.