I have a pally macro:

/cast [mounted] !Crusader Aura; [nomounted] !Devotion Aura

The !'s make it spammable.
The Crusader Aura or Devotion Aura is run only once.
And even on later presses, will not run.
So it won't turn off, on a second click.

Naturally, changing from on foot to mounted.
And the other spell will run once.