Some nice concepts ... but does not seems very practicable to me ...
For example:
How do you prevent a botnet from using consecutives IP addresses in order to validate itself ?
(easily done for example if the botnet controler "owns" an IP network and if the botnet is using it as a proxy to access the internet)
If computers are not "Proof-of-working" all the time, how do you prevent them from launching multiple instances of the client to appear as multiple computers ? (they can expose multiple IP addresses if necessary)
What about honest people using NATs (so only one IP address) ? Only one client allowed ?
Also, as someone already said, you basically want to use the usb drive in a context where a dedicated dongle would do much better.
But such dongles would either have to be built and sold in a centralized manner (maybe checking the real identity of the buyer - bad for anonymity), or you would face people building and using tons of them. (similarly to ASICs with bitcoin)