I don't recommend putting out 2.6 million items linked with one time, but it does prove the concept that 2.6 (Virtual Timers) work, never tested placing 2.6 million actual timers, too afraid to see the outcome on my poor laptop!
*Using Async is not something to take lightly, specially when applying it to a existing system that you have no idea or access to block the main thread from interacting with objects being changed on the sub threads by other methods unknown to you. Thus, using await and such allows you to control it somewhat by ie: not leaving the calling thread method until all sub threads are completed! Though in trade off, you are holding back work that could be processed on that dead time. Async is amazing if used correctly and hindered when implementing into existing systems.