あなたの構文は正しいと思いますが、あなたの期待は間違っています。
ウィンドウ化されたアプリケーションを起動しています - コマンドは Firefox が閉じるのを待たずに続行します。あなたのコードは、おそらく Firefox が起動したことを適切に報告しています。Firefox が起動に失敗した場合(おそらくマシン上に存在しない場合) にのみ、条件付きコードがバイパスされます。
通常、ウィンドウ アプリケーションを起動し、終了する (閉じる) まで待ってから続行する場合は、START /WAIT を使用します。
echo previous command & (start /wait "" yourApp.exe && echo successful closure) & echo additional commmands
ただし、Firefox などのブラウザで動作するかどうかはわかりません。多くのブラウザは、複数の実行可能ファイルで構成されています。起動実行可能ファイルは、補助プロセスを起動してからシャットダウンする場合があります。コマンドは、ブラウザーがまだ実行されている場合でも、実行中の exe が正常に返されたことを喜んで報告します。繰り返しますが、Firefox がこのように動作するかどうかはわかりません。しかし、もしそうなら、問題ははるかに難しくなります。Firefox がまだアクティブかどうかを確認するためにポーリングするプロセスを実行する必要があります。