The equation is correct. Using impulse to launch the projectile is where the variance is.
Impulse = Force*time
and from best I can tell dt is used for time and that varies.
Try setting the velocity instead with:
velocityX=speed*cos(angle)
velocityY=speed*sin(angle)
Actually i'm using force but I prefer to keep things more simple. I'm not good with math and I need to build something that I can work with more easily in the future, in order to fix bugs and make adjusts. So I decided to compare different ranges of the overall velocity (intervals of 50) in the collision's moment, instead of trying to get the exactly velocity, which C2 has no expression for it. I think this way I keep things simpler and, since the mass will always be the same, the result of KE=0.5*MV² would always be in the same proportion of whatever velocity I got. I did this way and so far it's working nicely regarding to each bonus the player gets and how fast the ball hits the object. At least these bonuses is being coherent and that's my goal.