Micro task queue

- [ ] use a micro-task queue to register timings, rather then macro task.
- [ ] push cleanup to the next/near future macro task (so it doesn't disturb the task with the test)
- [ ] some idiomatic promise usage
- [ ] confirm everything works nicely