A coisa é como o Windows gerencia seus processos. Eu li que o Windows trata cada aplicativo diferente como um thread (que compartilham a mesma pilha) é por isso que, por exemplo, o CheatEngine pode ter acesso à memória de outros processos.
Não são como muitos sistemas baseados em UNIX, onde cada processo é, na verdade, um processo diferente que tem seus respectivos recursos bem delimitados entre si. É por isso que não há CheatEngine para Linux ou apenas os serials funcionam para os aplicativos da OSX. E a única maneira de um processo interferir nos outros é com recursos do sistema, soquetes e portas.
Talvez o outro aplicativo esteja usando / liberando alguns recursos de que seu aplicativo precisa (pode até ser um arquivo de bloqueio singleton, como quando um processo chrome está em execução e não responde e, por isso, não executa outra instância do aplicativo ).
Eu não sou nenhum tipo de guru da computação, mas é isso que sei com base na experiência que tive até agora, sou técnico, mas não engenheiro.