Seus campos name contêm vírgulas, mas não são citados. Por isso, awk verá tipos diferentes de valores na coluna $3 de cada linha. Este seria o caso mesmo se eles fossem citados, mas no caso mostrado aqui, mesmo um analisador de CSV real não ajudará. Aqui está o que eu fiz para contornar isso:
awk 'BEGIN { FS=",,*"; print 0 }
(NR > 1) { gsub("[^0-9,]",""); printf "%d+\n", $2 }
END { print "pq" }' < text.csv \
| dc
Isso primeiro usa gsub para remover tudo o que não é um dígito ou vírgula em cada linha e, em seguida, imprime o valor da nova segunda coluna, em que as colunas são consideradas separadas por uma ou mais vírgulas. Os blocos BEGIN e END fazem os dados funcionarem com o formato dc expects.
Eu usei dc porque não sei se awk funciona como uma calculadora de precisão arbitrária e de propósito geral. Em caso afirmativo, você poderia fazer:
awk -F ',,*' '(NR > 1){ gsub("[^0-9,]",""); SUM_SALARY += $2 } END { print SUM_SALARY }' < text.csv
Este caso funciona muito parecido com o anterior, exceto que awk está fazendo a aritmética em vez de dc . Isso também usa a opção -F para definir o separador de campo, para evitar um bloco BEGIN sem uso.