You raised a good question, and this topic is a bit more complicated than it seems.
The first thing you need to understand is that most pools use a Branch n bound (bnb), knapsack, and Single Random Draw (SRD) algorithms to fill blocks with transactions, all of which fall under one term, which is "Coin selection." Now, obviously, this coin selection faces the unsolvable knapsack problem. However, the default behavior is "greedy highest-fee-rate packages"; the end goal is to get the most total fees available even if that means ditching the highest-paying transactions.
In your example the protocol would ditch the 1.99 sat in favor of the two 1.98 sat transactions.
However, there is another piece of information that you need to know: the default core settings that deal with fee rate play a massive role in the propagation and inclusion of transactions. There are two of them: minrelaytxfee and blockmintxfee. The former sets the minimum fee for transactions to be accepted into its mempool and to relay them while the latter sets the minimum for transactions that it would pass to getblocktemplate.
It's safe to assume that most pools had their settings to the default, so not only were they not including transactions, they are not "seeing" them in the first Obviously, most some 'greedy' pools started to relax that limit and based on my observation, here is the current status as of now
Pools that dropped the limits:
Antpool
Foundry
spiderPool
F2pool
Luxor
Secpool
MiningSquared
Still running the default:
SBI
Innopolis Tech
ViaBTC
Mara pool
If the question is, Should pools stick to the default 1 sat policy or not?, then that would require a whole different topic and endless discussion, just like the ordinals debate that we have been having forever.