FragmentManager# executePendingTransactions
ならばトランザクションに追加した後であれば、いつでも上記のコードでFragmentを取得できるのだろうか? 否。
実際に組んでみれば分かるが、以下のようにActivityが生成されるタイミングでFragmentを生成、トランザクションに追加した直後は、findFragmentByTagメソッドの戻り値はnullになる。
ソースコードを見れば分かるが、FragmentTransactionとして追加された処理はエンキューされて、その後はActivityのライフサイクルメソッド(onStart, onResume, etc..)が実行された時にペンディングされていた処理として実行される。
先ほど@zaki50さんに指摘頂いたが、これにはちゃんと回避策がある。
FragmentManager#executePendingTransactions | Android Developers
executePendingTransactionsメソッドを呼び出すことで、現在ペンディング中の処理(コミットされたトランザクションへの追加)を直ちに有効にすることができる。
まだ試してはいないが、これで即座に追加したFragmentを有効にできるだろう。