Arduino Timer library allows implementing arduino projects that can be completely async, and allows sleep mode when CPU is idle