If you like, I can change the script I wrote to a per block reward system, I'm sure it would come out the same. If not, I concede.
I am curious what will happen if you implement the following conditions:
At the end of the block, worker shares get reset to 0.
Just before that happens, the shares are used to calculate payout, and the payout occurs per block.