As it seems, mempool.space isn't very reliable in calculating of fees. Yesterday, I checked this image data and chose a halfHourFee for my transaction. Usually, when I make a transaction, I always put tx id in mempool.space to know how long it takes for my tx to get confirmed. It got confirmed in some minutes and then mempool.space shows me an yellow frame, next to fee rates where it says: Overpaid 2x. Then I checked and I really overpaid because much lower fee was necessary to get my transaction into that block. I don't really know anymore how it calculates the fee, there was a difference of 2 satoshis between the Low priority and Medium priority fees.
Unless you want to share the tx there can be only speculations but from my own experience:
I paid near the minimum next block fee as it was a bit of a priority to get it confirmed, there was a small dump before the next block that pushed my tx outside of it but the second block was mined just a minute after so my tx was in the top paying ones and some with just 1/2 got confirmed also.
So technically I paid twice as much, but in any other situation, I would have paid the minimum.
Since you mentioned only a 2sat/b difference this must have happened just like in my case, in the low fees era, so, not applicable anymore right now.
The truth is that there is no reliable source of fee prediction, because no one really knows when the next block will be mined.
It may takes 10minutes, or 10 seconds or just 40 minutes.
On top of that, nobody knows the incoming transactions rates, you can have a normal time with just the average 2-15tx/s or you can have somebody dumping 5000 in one go as Binance did a few months ago and this will ruin every single prediction made in the last hour, turning next block transactions into next day priority.