O Puppeteer sobe o Chrome com --proxy-server=http://IP:20001. Como o Chrome não recebe senha por argumento, a autenticação vai em page.authenticate({username, password}) antes de abrir o destino.
SOCKS5
Para SOCKS5 o argumento muda para socks5://IP:20481. A autenticação continua no mesmo método.
Chame o authenticate em toda página nova. Um popup aberto sem ele sai pelo endereço e leva 407.