You are clearly a fan of "Wait for signal" action :). Which is not a bad thing, but I'm not sure if you are always using it correctly. For example if the two shuffling functions on your screenshot are completed immediately and don't have any "waits" or asynchronous requests inside, then you don't need the "shuffled" signal.
Also, your whole GameStartup function is set as async, which means you can use "Wait for previous action to complete" in the parent event, from which you are calling this function. And yet you are signalling "StartupComplete" for some reason.
And of course, you can optimize all those AJAX requests, get rid of "on completed" events and signals there.
.
I feel like your experience with other engines is actually doing you harm here, because Construct events system is quite different.
Another thing you may be overusing is arrays. Of course, I can only make assumptions here, but I see 10 arrays on the screenshots you posted. In Construct many things where you normally need arrays, you can do much easier without them. If you have several instances of the some object or family - this is already a two dimensional array. And it's much easier to work with instances (sort, filter, group, modify, add, remove etc.), than manipulating an actual array. It's totally possible to make big complex games without a single array.