you should as this from the services that the "community" uses. ask them why they haven't yet implemented SegWit. for example when the exchanges the "community" uses don't accept bech32 addresses, people don't use them.
What do you do if a small group of users -- like a few large mining companies -- are blocking upgrades that users want? I don't have a problem with the UASF mechanism per se, but I think it must be done on a very long timeline (years) to maximize full node participation in forcing miners to fork.
that is a good question but here is another question; a problem that i see with UASF is that compared to mining (hashrate) the cost of running a node is negligible. you can't go buy a ton of ASICs to signal for what you want but you can easily "buy" servers and run lots of nodes and signal for what you want. an AntMiner s17 is $2735 (20.5e-5% of total hashrate), it seems it costs $10/month to run a node on AWS (~0.02% of total nodes)!
so for instance if in 2017 someone started a UASF to fork the block size to 32 MB and started running a ton of nodes, should we really consider that "the community"?