Security-компонент навешивает свой собственный
ExceptionListener, в котором ищет среди всей иерархии исключений те, которые относятся к компоненту (в вашем случае
CustomUserMessageAuthenticationException
- подкласс
AuthenticationException
) и обрабатывает их по-свойму.
Можете попробовать поиграться с приоритетом своего листенера, но есть вероятность что сломаете логику работы компонента