Asynchronous functions simply have the benefit of being able to use "wait for previous actions to complete" so you can do a bunch of stuff inside that function like tweens and wait for all of them complete before you do the next thing.
A heavy function like that in Construct will simply attempt to run inside a single tick, that's why there's a freeze. You might have to split this up to avoid the freezing, like adding 1000000 per tick over the course of 100 ticks. Which takes a little over 1.5 seconds to complete at 60 fps. I don't think there's a construct build-in way to do this.