You are right that TopFieldCollector doesn't address some expert use-cases that EarlyTerminatingSortingCollect used to address. If you need to do something like this I think it's fine for you to fork EarlyTerminatingSortingCollector.
Do I get it right that you have two fields A and B and want the top 10 documents sorted by A among the top 1M documents when sorting by B? If yes then beware that EarlyTerminatingSortingCollector does not exactly do that since it works on a per-segment basis, so you could get some hits in your results that are not within the top 1M hits when sorting by B.