Ad 1)
That is what happens when you use Flamestrike as base of the ability, because this ability is using the 'Casting time' field as a way to offset when the fiery explosion occurs after Blood Mage starts casting the spell.
You have spells that either use or do not use the Casting Time
- Usually, if Casting Time is > 0 in the original spell, then it is used for something (for example: Blizzard spell uses Casting Time to determine how often should wave of frost drop on enemies). In this case, you need to find out yourself what Casting Time does (as it changes from spell to spell) and if it fits your need
- If Casting Time is 0, then it is usually not used. So when you set Casting Time for such spells and use them in game, what happens here is that the casting unit just stands still for the Casting Time amount (plays no spell animation, does not show any special effect) and after that casts the spell.
Using Flamestrike (or in my case Channel) was intentional here - yes, the moment the Boss casts the spell, it will trigger the 'Unit Starts the effect of an ability' event, but it will take the Casting Time amount before the spell finishes.
The pros here is that the casting unit will play animations, display special effects, etc.
You can detect if unit finished casting an ability by using the 'Unit finishes casting an ability' event. At that point you will not have access to all the related information - you will know who is the caster, but you will not know where is the 'Target Point of ability being cast'. However this should not pose any issue to you spell - since you center the AoE around the caster, you can just check 'Position of (Triggering unit)'.
Another thing you can do in this trigger is to remove the Invulnerability from the caster and also remove the ability itself from the caster.
Ad 2)
The trigger should work. Just tried on new map the same setup as you have and it worked as intended.
Either you turn on the trigger again somewhere or the trigger is not fired at all, but the unit's AI is making it cast it.
Just print a debug message whenever the trigger is executed and you will see what the issue is.
Anyway, I would advise you to remove that ability from the Boss unit after he stops casting it.
You can use the 'Unit stops casting an ability' event which fires anytime unit stops casting it (be it because the unit was interrupted, got different order, or just finished casting the spell) or the 'Unit finishes casting an ability' which fires only if unit successfully finished the spell without any interruption.