585です、説明が足りずすいませんでした
補足すると、Activity内のロジックが多くなったのでロジック毎にUI無しのFragmentに処理を書くように変更してます
処理の流れとしては

1. ActivityからXXXFragmentに処理依頼
Activity#getFragmentManager().beginTransaction().add(XXXFragment).commit()

2. XXXFragmentで処理開始
XXXFragment#onStart() {
ここで処理開始
}

3. XXXFragmentの処理が完了したのでActivityに完了通知
XXXFragment#startActivityForResult(getActivity().getIntent(), XXX);

4. XXXFragmentの完了処理
Activity#onActivityResult() {
XXXFragmentから処理結果取得
getSupportFragmentManager().beginTransaction().remove(XXXFragment).commit();
}

3の処理が適しているのかが困っているところで、>>587にあるように
XXXFragment#getActivity().notifyResult()
のようにAPIをActivity側に用意するのが一番簡単ですが、
そうするとFragmentが使う側のActivityにAPIを用意してもらう制約が生まれるので、
再利用性の低い実装になると懸念しています。
Frameworkの機構を利用してうまくやる方法を教えていただければと思います。