It seems like the second option (doubling the backslash character) does work:
# cat /tmp/file.csv
"a""a\a.com","{""aaa\\zzzeee""}"
# echo "CREATE TABLE test(a text, b text[]);" | psql
CREATE TABLE
# echo "COPY test (a, b) FROM '/tmp/file.csv' (FORMAT CSV, DELIMITER ',');" | psql
COPY 1
# echo "SELECT b[1] FROM test LIMIT 1;" | psql
b
------------
aaa\zzzeee
(1 row)
#
The double backslash (\\) you may be referring to is probably psql performing escaping when displaying the full array:
# echo "SELECT b FROM test LIMIT 1;" | psql
b
-----------------
{"aaa\\zzzeee"}
(1 row)
This behavior is described in the documentation (8.15.6. Array Input and Output Syntax):
The array output routine will put double quotes around element values if they are empty strings, contain curly braces, delimiter characters, double quotes, backslashes, or white space, or match the word NULL. Double quotes and backslashes embedded in element values will be backslash-escaped.