to answer a few of your questions.
2. to change the number plays, make a new column in a view, make it an expression. use for the expression [number plays] in the new column you can change the number plays to every value you want.
6. no that is not possible as far as i know.
7 as you said number plays and last played are written when a file is played for more then 50%. at the other side stays skip count and lst skipped. you could use both to make a smartlist which gives the files that the last time you played them and stopped before half
gues this would work?
[Media Type]=[Video] [=IsEqual([last played,0],[last skipped,0],3)]=1

gab