1) Yes. The easiest argument being that Ada tasks run in the same process context, making tasks/threads somewhat faster than separate processes. The language level inter-task communication and synchronisation features are another reason.
2) Only some versions of SPARK prohibit tasking. RavenSPARK (2005) allows tasking, and allows formal reasoning about tasking. The problem with tasking is that it is hard to reason formally about, especially with the ambitions of the SPARK team (proving correctness).
3) You could consider limiting yourself to the Ravenscar profile. But plain Ada tasking is already relatively safe (even if it can't prevent you from writing nice dead-locks).