As you've pointed out, the key here is first to define what it means to "use bitcoin". Once that is accomplished, and everyone in the discussion agrees on the definition being used, we can begin to consider how that number might be estimated.
For the temporary purposes of this post alone, I'm going to use a definition of a "user" of bitcoin being:
Someone that either has engaged in an on-chain transaction within the past 365 days (consumers) OR is holding some amount of bitcoin in an address that they have direct control over (holders).
I'm aware that this leaves out "holders" that are "holding" their bitcoins in a custodial service, as well as those "consumers" that engage in off-chain transactions (either Lightning Network or transactions entirely within a custodial service where both the merchant and consumer are using the same service)
I'm too lazy to count a year's worth of transactions (or even to Google to see if anyone has a count posted somewhere), but I've got enough motivation to make up an estimate that "feels right" in my head. Let's say an average of about 3000 transactions per block?
Using my arbitrary definition, it seems that we should be able to just add up the number of blockchain transactions, and add to that the number of funded addresses to achieve an upper bound:
3000 (tx/block) X 52,560 (blocks/yr) = 157,680,000 unique transactions per year.
Add to this the 36 million funded addresses mentioned earlier and we have an upper bound of 193,680,000 "users".
If we want to refine that upper bound a bit, we could throw out addresses that are funded with less than some minimum threshold, as well as transactions that use previously used inputs. We could also eliminate from the "funded addresses" count any address that was used in a transaction in the past year (since that user will have already been counted in the "transactions" portion of the formula, and we don't want to count them twice).