O awk é um pouco complicado quando você não quer aplicar o mesmo processamento a todos os arquivos, mas isso pode ser feito.
Para este caso de uso, eu li o conteúdo do segundo arquivo no começo e uso isso depois.
BEGIN {
while (getline <ARGV[2]) {
logfile = logfile $0 "\n"
}
delete ARGV[2];
FS = "\n"; RS = "\n\n";
}
{
print "<candidate>";
print "<name>" $1 "</name>";
print "<id>" $2 "</id>";
print "<email>" $3 "</email>";
print "<log>" logfile "</log>";
print "</candidate>";
print "";
}