So then, a reliable metric for node operation is to keep track of the information being broadcast to the network. Since it's the capabilities of the network that we care about, maybe . . .
Any metric that requires self reporting and cannot be independently verified to be true is easily gameable . . .
As you've hopefully noticed from achow101's post...
When trying to come up with solution, you need to assume that a significant percentage of the network is actively trying to take advantage of your system to make things worse for everyone else. You either need to make it too expensive for them to bother (which is what proof-of-work accomplishes) or you need to make the metric something that is independently verifiable (which is how the difficulty adjustment works).
Keep in mind, that you can't assume that users will be running the same software as you. Unlike your CS class sorting system where you knew exactly what it was going to do, and could count on it since you wrote the program, in a distributed system you need to assume that adversaries will write their own software that will try to participate on your network without you realizing it.