Hola theskintman,
¡Pienso que usted está viendo los efectos de una llamada asincrónica aquí, la variable no se está fijando al “éxito” antes de que la línea que vuelve un valor ejecute!
Usted puede forzar la llamada del ajax de los jQuery para funcionar síncrono fijando la característica “async” a falso. Ésta puede no ser la mejor manera de trabajar con su código - puede ser que su servicio repetido del éxito podría actuar más directo en su página o los datos y usted serían mejores considerando que… en todo caso lo que sigue puede dar resultados más en línea con sus intenciones: