Who enforces new consensus rules in Bitcoin?
Consensus rules are enforced by economic full nodes i.e. full nodes that are actually using their full nodes to verify and monitor their own transactions. Full stop. In that sense, a theoretical miner not running an economic full node is not enforcing consensus rules, they are attempting to mine blocks with rules enforced by the network of economic full nodes. If that theoretical miner mines a block that doesn't meet those consensus rules the economic full nodes will reject that block.
However, if you are attempting to coordinate the smooth activation of a soft fork one of the ways to minimize the prospect of large re-orgs, confusion and disruption is to get miners to signal readiness. (Signaling readiness is not &quot;voting&quot; for the changes in the soft fork.) Ideally you want all miners to be enforcing soft rules post activation because if a few miners aren't enforcing them a transaction that doesn't meet those soft fork rules could creep into a block and cause a larger than normal re-org. Miners who are enforcing the soft fork rules would reject the block and eventually successfully mine on top of an alternative block but it would need time to work itself out. Of course those miners who have blocks that are eventually rejected lose out on block rewards, transaction fees and transactions that are included in that rejected block will need to be mined in an alternative block.
The focus is only on miner signaling for say the Taproot activation because we want to ensure a smooth activation of a soft fork. We want to know that miners are ready to enforce the additional consensus rules of the soft fork knowing that many economic full nodes may not be enforcing them immediately post activation. However, if there is a &quot;block size war&quot; going on and there are disputes on whether a soft fork should be activated or not (like there arguably were with SegWit in 2017) what ultimately matters is what consensus rules the economic full nodes are enforcing and not what miners signal. In this emergency like scenario you would likely see a lot more economic full nodes enforcing the soft fork rules immediately post activation.
In summary, during peacetime miner coordination and miner signaling does the job just fine and we don't have a problem if a number of economic full nodes aren't enforcing the new soft fork rules immediately post activation. Full nodes aren't creating new blocks and hence can't create a block with a transaction in it that doesn't meet the new consensus rules. (Ideally all economic full nodes would be enforcing them but it is not a problem if they aren't assuming a supermajority of miners are). During wartime however the burden falls onto economic full nodes to determine what consensus rules the network is enforcing. Miner signaling, to the extent that it isn't influencing what consensus rules economic full nodes are enforcing, is irrelevant.