Я думаю, что двусторонняя связь с использованием одного и того же связующего невозможна для служб. Я много пробовал, и проблема, которую я нашел, используя язык вашего собственного примера, состоит в том, что интерфейсы IBinder, полученные из второго сервиса, всегда равны нулю.
Я имею в виду, что первый сервис связывался бы со вторым, чтобы получить действительный IBinder для связи со вторым сервисом. Ограничение состоит в том, что когда вторая служба вызывает первую службу, она не может передавать интерфейсы первой службе, поэтому могут выполняться обратные вызовы (от первой к второй).
Вместо этого необходимо установить новое независимое соединение IBinder со второй службой. Надеюсь, что кто-нибудь может помочь нам с этим.
Альберто.