O problema é que nem todos os recursos de análise de shell são chamados se você passar o comando diretamente para screen
. Portanto, a solução é passar diretamente o comando para um shell, que o analisa conforme o esperado.
Por exemplo, supondo que você use o bash:
su $USERNAME -c "screen -dmS $SCREENNAME bash -c \"$COMMAND > $LOGFILE\""
(Os parênteses escapados são para que o comando seja passado para bash como um todo, caso contrário, o problema com o redirecionamento da saída de screen
e não com a saída de $COMMAND
surgiria novamente)