Without the full nodes rejecting the non signaling segwit blocks, the miner would not have decided to forked. Without him forking, the market would not be able to determine the outcome.
So essentially your proof of power of full nodes is: full nodes have power over miners, because full nodes have power over miners.
No, seriously. You talk about a "proof of power" and you assume in your proof what you need to prove

...
Full nodes have the power to accept or deny the miners work.
... for themselves.
If majority of the Full Node network denies a certain block, that
block is considered invalid and other miners will ignore that invalid
work.
Why would they ? They receive each-others' blocks. If your node considers that block invalid, it doesn't propagate it. Concerning that block, it is as if your node was offline. If your node is off line, miners don't stop mining. If 90% of all non-mining full nodes are switched off in half an hour, miners will continue mining. A full node that refuses a block on the block chain, is like a node that is switched off. If it doesn't receive another block (from a miner) that is built on the last block that he accepted, it will stop building its own copy of a block chain, and that's it. On the network, that node will be "silent" now (apart maybe from block requests of the block he refused). It is like a node that fell behind.
The only thing miners care about, is that their block is accepted by OTHER MINERS, so that it gets included in the sole chain that is out there. And as time is money for miners, they don't wait for that block to hop happily through the P2P network, they try to catch it from the source: their peers, directly.
It is essentially a "Veto Power". The miner's work is not always
correct (though they try to be, otherwise they lose their reward). When
the block is propagated, it is spread throughout the network to
determine if a "Veto" is needed. Majority of the time, it is not needed.
Nope. What you call "veto power" is the "consensus decision mechanism". Now, in bitcoin, that consensus decision mechanism is solely decided by PoW. In other words, the sole entities that have veto power are the miners that decide to build on YOUR block or on ANOTHER block that is valid according to THEIR rules. If they decide that that block is valid according to their rules, and they decide to build on it, that block is now part of the block chain, and no other miner will put that into question. If he does, systematically, he has FORKED OFF and decided to make a new chain.
If many full nodes decide to use OTHER VALIDATION RULES than the rules that the miners use to accept their peers' blocks (which is what we are talking about), then these full nodes will simply receive the same block chain as anyone else, but will stop at the first block that is not in agreement with their local rules. At that point, that node stops. Nothing more. This will not influence the miner's decisions to accept, or not, their peers' blocks: in fact, they are not even AWARE of it. If your node stops because its hard disk is full, or because it has a rule set that is different and refuses a block, for the miners, there's no difference.
You are not part of the system that is part of the consensus decision mechanism.
Bitcoin is designed that way: that mechanism is only working with PoW. You don't have any. And they don't need you to transmit blocks. They get them from one another. If you stop transmitting, that's stopping nobody. Which is what your node will do: stop.
If miners choose to ignore what the full node network consensus is
saying and choose to continue to build upon the invalid block, thus
creating an invalid chain, that would be an attack (or a mistake
because miners are not checking other miners work, but trusting
them) on the network and the markets could react by selling, since
Bitcoin's Consensus Mechanism has been proven to be faulty.
You can also say: if a lot of nodes on the network stop, but the miners (who are the defining entities of the network consensus, especially if that consensus is "keeping the old rules as always", because they are the ones who deliver PoW, and hence decide on consensus) continue to make a single chain, nobody is even going to notice, except maybe that a lot of nodes are stopping and falling behind, or disappear from the network.
If what you say is true, then I can kill bitcoin tomorrow. I make a copy of core software, and change something in the rules, so that it doesn't accept the current block chain. I now launch 9000 nodes on Amazon with that software. Hey ! There's a majority of full nodes refusing the block chain ! Consensus mechanism is faulty !
It is exactly because of that easy Sybil attack on "full node majority" that Satoshi introduced Proof of Work for the consensus decision, to deny non-mining nodes (whose numbers can easily be manipulated and whose majority is a matter of launching nodes) any consensus decision rights !
But the very proof of the pudding is the eating: if in this "war", non-mining nodes had anything to say, one would already have seen massive Sybil attacks by armies of nodes pushing one or the other side. That's not the case. Running 10 000 nodes is cheaper than mining for a few hours. The fact that this doesn't happen, is the proof that these full nodes don't mean anything.
If bitcoin was sensible to a large majority of full nodes doing weird things like refusing a block chain, then anyone wanting to bring down bitcoin would have a very easy way to do so. Launch 100 000 nodes for a few days who refuse what's happening, and bitcoin would be dead.
No,
bitcoin has protected itself from the cabals of non-mining entities with Proof of Work.