Efectivamente no hay congruencia por que estas en en evento BEFORE osea que en este punto los datos no han sido insertados en la tabla por lo tanto no se ha producido ninguna excepcion por lo tanto
Código SQL
[-]WHEN GDSCODE unique_key_violation DO BEGIN
EXCEPTION USUARIO_CONECTADO;
END
Nunca entra por que hasta este punto no ha ocurrido ninguna excepcion.
Resulta que cuando se intentan escribir los datos sobre la tabla (despues de haber pasado por este triggger) es cuando realmente se produce la excepcion y por eso el mensaje que se lanza es el nativo de FB no el personalizado.
Te sugiero que revises el mensaje anterior que te escribi. Para que valides en el trigger (antes de... ) y desde alli dispares la excepcion personalizada.
Saludos.