Well, I'm just realizing that this is one not fully done yet.
I only get the spellID and can't query the spell name in combat without tainting my secure buttons code. :/
The only solution I can think of is to query all spell names and ids pre-combat and pushing them via an attribute to my secure code - which sounds more like a bad hack than a good practice.
If I ever get my time machine working, then my very first trip will be the meeting where the Blizzard guys did decide that swapping spellIDs and names with specs would be a great idea. Even before the visit in 1963 to see who shot Kennedy in real.
From my point of view that's a design decision that really messes things up without any need.