Creating a group for each shadow would be extremely cumbersome, since it would mean 1 full-screen surface for each shadow.
I was looking at the code and it looks like I can add depth support via the depth buffer. This would make it possible to have just 1 group with multiple shadows at different depths. I'll look into that later.
You can detect collisions with shadows and lights using .GetLightsCollisionAt()
Yes, all shadows have the functionality of blocking light, except sprite shadows, which also allow drawing in ambient occlusion pass.