А как насчет использования оболочки / программы запуска вокруг вашего основного приложения?Этот AppDomain может заметить, когда его дочерний элемент заканчивается (посредством блокировки, опроса или обратного вызова) и может выполнять любые дополнительные операции.
Аналогично, если main () состоит из запуска одного потока, который выполняет все важные действиязатем main () также может выполнить любую дополнительную работу.
Возможно, это поможет, если вы сможете объяснить, что вам нужно делать в ответ на каждое завершение AppDomain?Возможно, то, что вы просите сделать, просто не подходит на уровне AppDomain.