So I’m not an expert with the codebase, but I’m fairly certain that the tick groups are run in serial (though not on the main thread. which is contrary to what I said in my first reply).
What appears to run asynchronously is the dispatch of the tick groups. Specifically, the main thread will pass off the execution of a tick group to another thread allowing the main thread to chug along and do something else (I’m pretty sure the main thread just moves on to preparing the next tick group for execution).
The ticks in the tick group appear to be executed serially on the other thread.