Edit: aaaaand this whole replied got ninja'd by Spooky finding that Onspellcast worked after all.

Leaving it for reference anyway.
My guess is you'll have to track it yourself with an ability. There is an event, "SoundPlay.WPNStaffHandDraw" that fires when a staff gets equipped in either hand. Unfortunately, the actual casting events listed below are identical whether you have a staff in your hand or just a spell. You could use a script with states to track whether the actor has a staff equipped.
The events fired when drawing a staff and casting a FF spell with the right hand:
Spoiler tailEquipweaponDrawInterruptCastarrowDetachMagic_Equip_OutSoundPlay.WPNStaffHandDrawEnableBumpertailCombatIdleBeginCastRightSprintStoptailCombatIdleMRh_PreChargeOut (Spell is charged and ready to release)MRh_SpellFire_EventMRh_WinStartMRh_Equipped_EventMRh_WinEndCastStoptailCombatIdle
The events fired when drawing a staff and casting a Conc spell with the left hand:
Spoiler tailEquipweaponDrawInterruptCastarrowDetachSoundPlay.WPNStaffHandDrawweaponDrawSyncPointMagic_Equip_OutEnableBumpertailCombatIdleBeginCastLeftSprintStoptailCombatIdleMLh_PreChargeOutMLh_SpellFire_EventCastStoptailCombatIdle
The only difference between those sequences and the sequence of equipping a non staff-based spell is the lack of SoundPlay.WPNStaffHandDraw.
So... if you have your actor-attached script watch for SoundPlay.WPNStaffHandDraw events, use http://www.creationkit.com/GetEquippedItemType_-_Actor to see which hand has the staff, then switch to a state where it watches for MLh_ or MRh_SpellFire_Event (obviously depending on which hand has the staff), that should work. To detect when the actor has put the staff away, either watch for Magic_Equip_Out without a preceding SoundPlay.WPNStaffHandDraw, or just re-check the target's equipped weapons any time Magic_Equip_Out fires.
This should work pretty well overall; I'm tracking more complex states than this using similar methods. Of course, if there's an easier method or Papyrus event you can use, you should do so
