It's a quirk of Construct 2, and could be difficult to fix. It works the same as it did in Classic and for the same reason: objects are not truly created until the next top level event. Although spawned/created instances are picked in the event they are created in, it does not actually exist at all in subsequent subevents, until the entire top-level event finishes.
The reason for this is quite technical. If a condition picks from instances of "Sprite1", then the actions are running on a subset of all "Sprite1" instances. If one of the actions spawns a new "Sprite1" instance, then the subset of all "Sprite1" instances has changed. Since the actions were already running on these instances, and it changed halfway through, due to the design of the runtime it would then crash. The most obvious way to fix it would reduce the performance of all games, rather than just games which do this, and other solutions are hideously complicated, so it has been deliberately left like this.
Note you can still destroy an object in the same event - try moving the second subevent nested under the first. That might be a good workaround. Apart from that you can work around it by adding a 'Wait 0 seconds' event before the Destroy action, which postpones the action to the end of the event sheet, by which time all created objects will "really" exist.
I think this has to be closed as won't fix - I can't think of a good way to build in a workaround to this in the engine itself.