The idea is good, but it allows to inflate the shares amount by 0.3%-1.5% (depending on the number of long polling clients) with stale shares.
Another way to defeat this system is to declare the block invalid or do not show the block (pretend, that it wasn't solved).