I don't think #1 matters, because it runs again once it's in a valid state again. Your test will fail while in an invalid state, but that's to be expected.
As the author explained in another comment, it initially generates the code coverage for all tests. When code is changed, only the tests that cover that code are rerun.
2. The first run and every subsequent one collects code coverage which is saved in an sqlite db. Every file change is compared to the code coverage.
Although this approach isnt perfect, The idea here is being fast. I always rerun the entire suite just before committing the code.