Ocultar botones personalizados en combate

Saludos, os pongo en contexto.

Soy un despiste. Paseo por las tierras sombrías con mi [Aura de cruzado], lucho contra algunos malotes y al acabar me doy cuenta que he olvidado poner [Aura de devoción] todo el combate.

Para evitar este problema he decidido crear un AddOn que me ponga en pantalla el icono del aura que debo estar usando, siguiendo esta lógica:

if (IsMounted()) then 
	if (not Despiste_Tiene_Bufo("Aura de cruzado", "player")) then
		Despiste_Configura_Icono("Aura de cruzado", "player");
	end
else
	if (Despiste_Tiene_Bufo("Aura de cruzado", "player")) then
		Despiste_Configura_Icono("Aura de devoción", "player");
	end
end

La función Despiste_Tiene_Bufo comprueba si la unidad del segundo parámetro tiene el bufo indicado por el primer parámetro, devuelve verdadero en caso de que así sea.

La función Despiste_Configura_Icono muestra el icono de la habilidad que debe ser usada (indicada por el primer parámetro) sobre la unidad que debe ser usada (indicada por el segundo parámetro), anexo el código:

local function Despiste_Configura_Icono(bufo, target)
	if (bufo ~= nil) then
		Despiste_Boton_Icon:SetTexture(GetSpellTexture(bufo));
		Despiste_Boton:SetAttribute("type", "spell");
		Despiste_Boton:SetAttribute("spell", bufo);
		Despiste_Boton:SetAttribute("unit", target);
		Despiste_Boton:Show();
	else
		Despiste_Boton:Hide();
	end
end

Funciona a la perfección fuera de combate, pero en combate no: Paseo por las tierras sombrías con mi [Aura de cruzado], desmonto y lucho contra algunos malotes y el icono de mi AddOn no reacciona hasta que salgo de combate.

Se que esto tiene que ver con las restricciones de código seguro, pero se que existe una manera de hacer lo que quiero aún con esas restricciones (pues lo veo en otros AddOns) ¿Alguien sabe cómo se podría hacer?

Como referencia, éstas son las plantillas que he usado para el AddOn:

<Ui>
	<Frame name="Despiste_Aviso" inherits="SecureHandlerStateTemplate" parent="UIParent" protected="true">
		<Size x="64" y="64"/>
		<Anchors>
			<Anchor point="TOP" y="-128"/>
		</Anchors>
		<Frames>
			<Button parent="UIParent" inherits="SecureActionButtonTemplate" name="Despiste_Boton">
				<Size x="64" y="64"/>
				<Anchors>
					<Anchor point="TOP" y="-128"/>
				</Anchors>
				<Layers>
					<Layer level="OVERLAY">
						<Texture name="$parent_Icon" setAllPoints="true" file="Interface\Icons\Spell_Nature_Regeneration"/>
					</Layer>
				</Layers>
			</Button>
		</Frames>
		<Scripts>
			<OnLoad>
				self:RegisterEvent("PLAYER_ENTERING_WORLD");
				self:RegisterEvent("PLAYER_REGEN_DISABLED");
				self:RegisterEvent("PLAYER_REGEN_ENABLED");
				self:RegisterEvent("UNIT_AURA");
				self:RegisterEvent("COMPANION_UPDATE");
				self:RegisterEvent("SPELL_UPDATE_COOLDOWN");
			</OnLoad>
			<OnEvent function="Despiste_Event"/>
		</Scripts>
	</Frame>
</Ui>

Muchas gracias.