Nice work and very interesting direction. I think that an approach combining the state of the mempool with information gathered from the blocks themselves could work significantly better than the current fee estimation.
As the block will be mined in ~10 minutes, the block template can change significantly. Do you have some estimate on the number of transactions that wouldn’t make it in to the block eventually? Some fee rate estimates in the graph look low.
Do things change significantly if you choose the bottom 25th percentile?
What do you suggest to do in this case? I think that involving information from the blockchain itself to make the estimation better can help.