githubでNERDTreeのドキュメントを読んだところ、vimがバッファーなしで起動した場合はnerdtreeを自動的に開き、NERDTreeが唯一の開いたバッファーである場合はvimを自動的に閉じるなどの気の利いたことができることがわかりました。ただし、私の最後の問題は逆の実装です。何らかの理由でNERDTreeが唯一のオープンバッファであり、vimによる終了をトリガーしていない場合、ツリーを閉じても基本的に何も起こりません。この状況でvimを閉じて、:qを2回入力する必要がないようにします。
その他の便利な機能を実装する行は次のとおりです。
autocmd vimenter * if !argc() | NERDTree | endif
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTreeType") && b:NERDTreeType == "primary") | q | endif