The problem you are seeing here is that the Activiti engine handles the parallel gateway sequence flow in the order in which they are defined. As you probably know, Activiti doesn't use real concurrency for this. In this case, the signal catch hasn't been created yet when the throw is done.
An easy 'fix' would be to switch the sequenceflow. ie. first the one with the catch, then the throw. Sorry about that, but that's just the way the engine works. Introducing real concurrency here would create so much more issues (race conditions, deadlocks, etc.) than it would solve.