First thing, mind your language please, there are children using those forums. I've edited the title of your post, and you'd be wise to edit the title of your capx as well.
Also when asking for help, determine precisely what is it you want to do, what you think you attempted, what you would expect from your code and what you actually experience.
As it stands, Construct is just doing what you instructed it to do.
=> Every tick, update the displayed values in text objects
=> Every 0.3 secs (without any possible pause) => remove 1 from a value
=> When the value = 0 wait a second and do other stuff. Nevertheless, during the waiting second, your previous event still keeps on removing 1 from the value.
Moreover, during this second, the value is still 0 and so each tick the value is equal 0, you are stacking actions that will add a wave and some spawn.
A solution to your likely problem is to add the system condition "Trigger once while true" in order for this event to only execute once as per how events work.
BlackHornet's proposal can do the work as well, since the sub event will only be executed once with the value of 0.