I was unsure if the code sufficiently avoided caching a time-too-new rejection, so wrote this test to check it.
It looks like despite only exempting BLOCK_MUTATED, it is still okay because header failures never cache block invalidity.
This test will help ensure that if this ever changes, BLOCK_TIME_FUTURE gets excluded at the same time.
Note: Branch is a clean merge to 0.19 and master