Your restriction (no 3rd party apps) will keep a better fitting answer away, I'd say. What you describe is a task not for Tasker, but for... oh, I shall not mention it you wrote...
Your problem is most likely that Tasker very well catches the
boot_completed event, but the apps to kill have been waiting for the same. So when Tasker looks to kill them, they're not yet started. Your Task thus finishes without anything done, and Whoop! then the unwanted apps start.
So if you really want to do this via Tasker, I'd insert a
Tasker -> Wait at the very beginning of the task. Play with the values, start with 15s and increase in 15s steps until either it works or your reach a point where it's unlikely to work (say e.g. 2 min, or you see the apps have started and your Task didn't kill them).
If that still doesn't work, combine it with switching the condition: In case Tasker really cannot catch the
boot_completed (well, Tasker itself is started then), switch to "monitoring start", and start over with 15s wait again.
Finally, though you didn't want 3rd party apps, just in case you re-think that: Autorun Manager does this job quite fine, without any hazzle. On rooted devices, it even can disable other intents than just