Aside from all implementation difficulties, I don’t think that such a strict button would be used. We’ve come to rely on having a somewhat working Internet and thus the world at our fingertips at any moment. It would take a big shift in attitude to always have an online- and an offline-activity ready, and gamble on which one to do next depending on the outcome of the button. Personally, the incentive of better quality isn’t high enough; I can’t remember the last time my Internet connection was too bad to do what I wanted. I believe in the market, if there’s demand for better connections the providers will improve, and I’d rather change provider or spend more money for a better connection than gamble on losing all access, messing up my schedule.
A weaker version of the button could be implemented through a three-class Internet. Everybody starts out in the second class. On pressing the button, you get moved to faster or slower access with some probability and are stuck there for some fixed time. But this would require changing all of the Internet, for doubtful benefit, and it would be extremely hard to design a system that can’t be abused.
But even if people were willing to risk losing all access, the second part of the button is problematic too: How could it guarantee an improvement in QoS? The Internet is fundamentally different from a time-sharing machine because it’s not a single resource, it’s a gigantic graph and every client uses only a few paths in it, and to make things worse usage varies greatly over time. The guarantee of improving the QoS of “The Internet” as a whole can therefore only be made if there are bottlenecks that the user has to go through for all connections.
Let’s take an ISP’s gateways as examples. Suppose they are such a bottleneck, and they run a protocol that allows clients to send a button signal. Requests are paired up as a winner and a loser, and all packets from the loser are discarded for some time. But because this benefits all connections, the winner only notices a small improvement, so there’s not enough incentive for pressing the button in the first place. If the Internet was a virtual circuit network, the resources of the loser could be attributed to the winner, but with packet switching we would again need a two-class structure to process the winner’s packets faster than everybody else’s. This functionality could just be implemented in the ISP’s gateways. However, the ISP’s complete network needs to change too to provide unique identification of clients, which would require smarter routers and would limit network administrators. But there are already efforts of moving towards identity-based networking.
In conclusion, I doubt the usefulness of the concept of the Red Button, but it would be an interesting game theoretical experiment. My design could be implemented on any subnetwork, taking advantage of the network-of-networks structure of the Internet.