A great article and a great proposal. And a project for you at the same time.
I didn't dive into the concept of a witness before but it seems that there is really little that a witness actually is doing. Run the software, upgrade it occasionally, ... That's about it.
There should be some automatic system to score the witness's activity to gain / retain its position. Besides our votes, that is.
interesting suggestion...
(score about missed blocks, how fast upgraded to the new version,latency etc. could be possible)
Great. I am glad that you like it. Of course, I'll live the technical details to you :)