I'd check out
C_Covenants.GetActiveCovenantID(). You can also look at the other covenant functions
here.
PS:
COVENANT_CHOSEN only fires if the choice is made in the current session. Otherwise, use
PLAYER_LOGIN as that signals most character data should be available by then.