Been thinking on the pool hopper problem and came up with a few thoughts.
Why not just award shares to miners that mined for more than 50% of the block? During short blocks they don't hop away anyway, so there is no bad effect there. For slightly longer rounds, they are there for the majority of the round, so they have 'earned' their reward. The real problem is the longer rounds where they mine for 10 to 15 minutes and then leave. By the time an hour long block finishes, they are long gone. BUT, if you require a 50%+ participation in the block then it wouldn't matter. Their shares would simply be forfeit to those that stayed and mined the entire block, essentially they did free work for the pool.
This wouldn't even need to be calculated for every block, just those to run longer than average hopping time (20 min?). Also no need to play with delayed stats or other masking. Like they say in the lottery: You have to be in it to win it. Or in our case: You have to stay to get the pay
