No caso 2, acontece quase a mesma coisa. A diferença é que o firefox é um aplicativo de instância única e, se na inicialização, encontrar sua cópia em execução, faz isso:
- Envia os argumentos da linha de comando para uma instância em execução usando IPC
- sai
Isso é um algoritmo simplificado, já que alguns argumentos podem levar a outro comportamento, mas na maioria das vezes tudo acontece como acima.
Portanto, o processo em segundo plano existe em menos de um segundo no segundo caso, enquanto a instância do firefox anteriormente iniciada continua a ser executada independentemente do terminal.