This is not the issue of reader turnaround. This is the issue of code clarity.
From the user's standpoint warming up a new-from-scratch segment and warming up just-merged segment is the same action. The difference of what happens in which thread, and what blocks/doesn't block reopen is totally Lucene-internal API-wise. Now you're forcing people to make this distinction and do absolutely identical warming-up action in two very different places. Moreover, when warming up a new reader from reopen(), they have to get new segments and then discern which ones of them were flushed, and which were merged, to avoid warming them up twice.
I think there is no hurry to push the fix for this into 2.9.3. As of now this feature is broken. There is absolutely no way you can make it work. Thus, there are no applications that are suffering. Thus, not releasing the fix with 2.9.3, does not multiply suffering under the sun Thus, no need to hurry up and fix this at least somehow instead of doing this properly.