Seu redirecionamento se referirá apenas à saída do comando screen , não à saída no terminal da tela. Sugiro que você crie um arquivo screenrc especial para essa instância de tela com o seguinte conteúdo:
session top -b -p $MYPID
sessionname TOP
logfile /path/to/top.log
log on
detach
A variável de ambiente MYPID deve ser definida antes de chamar o comando screen . Em seguida, você invoca screen usando a opção -c e o nome do arquivo screenrc :
MYPID=$PID screen -c /path/to/top-screenrc
O arquivo screenrc contém os comandos screen , conforme explicado na página man. Primeiro, ele cria uma nova sessão com top , define um nome de sessão, define um arquivo de log para ele e, em seguida, inicia o registro. Como última etapa, a sessão é desanexada e o comando retorna ao prompt. Você não precisará enviá-lo explicitamente em segundo plano (ou seja, anexar & não será necessário).
Espero que isso corresponda ao seu problema.