CakePHP has infrastructure to remove tables created in the test database as fixtures. The documentation implies that these tables will be removed as part of the test cleanup. But it is not happening. Here is where it fails. This class is CakeTestRunner

The fixture manager would remove the tables at $fixture->shutdown(); but it’s not happening because the line above calls doRun without passing false as the third parameter. Therefore, doRun exits and the fixtures are never removed. And because the third parameter is missing — that is, because it is is not surfaced to my own code — it cannot be overridden.
Not sure if this is a bug or a feature or … ?
It looks like we needed to upgrade CakePHP to the latest 2.X version since the bug you found in #4 is fixed: https://github.com/cakephp/cakephp/pull/13311