Поизучал материалы в инете - жуть как вся эта тема описана и у каждого по-своему - не получилось собрать единую "картинку"
Не надо никаких материалов в интернете. Есть
официальная документация, которая нормально описывает суть работы событий в Symfony.
Сервис в одном из своих методов по факту конкретного условия if должен сделать так, чтобы запустился метод другого сервиса с одним параметром из текущего.
Что мешает вызвать из сервиса A сервис B?
Ключевое слово - ЗАПУСТИЛСЯ - типа как будто сам.
Типа как будто само ничего не запускается.
Понятно, что можно просто тупо запустить тот самый метод нужного сервиса, обратившись к нему из текущего метода, но тогда текущий метод текущего сервиса закончит работу только по факту окончания работы того запущенного метода нужного сервиса - а это мне не нужно, необходимо, чтобы запущенный другой процесс шел параллельно и "независимо" от текущего.
Если вы вызовете событие, произойдёт ровно то же самое. Параллельное выполнение имеет мало общего с исключениями.
Пока понял, что в методе текущего сервиса нужно прописать создание события, а запускающийся сервис будет являться слушателем или подписчиком - сервис надо так же превратить в слушателя. Обязательно ли создавать класс-слушатель и т.д.?
Вам вообще по тому как вы описали события не обязательно использовать. Но если будете - нужно будет делать EventListener или EventSubscriber. Читайте документацию.
А вообще, ВОЗМОЖНО, вам нужны очереди. То есть, можно посмотреть в сторону RabbitMQ, ZeroMQ и т.п. Суть будет такая:
У вас есть сервер очередей и пул воркеров, которые постоянно опрашивают сервер очередей на предмет новых заданий.
В вашем коде на PHP сервис отправляет сообщение серверу очередей с параметрами задания и продолжает делать свою работу. В это же время один из воркеров пула получает это задание и начинает его обрабатывать. Но это всё происходит не в рамках одной сессии приложения Symfony, а грубо говоря, работают два отдельных приложения, которые связаны через сервер очередей: ваше приложение на Symfony, которое отправляет задание в очередь и воркер(ы), которые обрабатывают очередь (вообще могут быть написаны на другом языке).