Вы можете поместить его в пул потоков:
ThreadPool.QueueUserWorkItem(o => callback.Notify(sData));
Просто помните, что это может засорить ваш пул потоков, когда у вас много плохих подписчиков. Вы, вероятно, хотите перехватить исключения и удалить обратный вызов, если он не прошел.
Обновление : если вы не хотите использовать пул потоков .NET, вы можете либо свернуть свой собственный, либо, например, использовать SmartThreadPool