Transaction fees are not accumulated between blocks. With each block we get the newly generated coins from that block plus the transaction fees from the transactions we put in that block. So we only earn anything at all when we find a block.
Yes, when there is bad luck the payouts are low and when there is good luck the payouts are high.
With a small pool the variance is higher. If the variance is too high then you can reduce it by splitting your hashrate over multiple pools.
No, people should not leave a pool after there has been bad luck. At least not if it uses PPLNS. The bad luck is in the past. You have no way of knowing what the future luck will be like. And it is the future luck that determines the pay for the work you do right now. That is a very important part of PPLNS. You should never be able to tell anything about future payouts. Whether you get a high or low payout for the work you do right now should be completely random and not something you should be able to estimate. That was the design goal of PPLNS. That is the reason PPLNS exists at all.
In the olden days many pools used the "proportional" reward method. Instead of only paying the N most recent amount of work when a block is found, it paid all the work back to when the previous block was found. Now with that reward system you CAN say something about what future payouts are going to be. This makes the proportional reward system vulnerable to pool hopping. People would switch pool at the right time and get paid more than the 24/7 miners.
I don't think any pools use prop rewards anymore, except maybe some altcoin pools. So after pool hopping became impossible it was kind of forgotten. Today many miners think pool hopping simply means switching from one pool to another.
You can read about pool hopping here: https://bitcoin.stackexchange.com/questions/5072/what-is-pool-hopping