Stop special casing setTimeout in AbstractDrawer.
Add unit tests that verify correct behavior for timing in AbstractDrawer.