How can I make a short timer using only command blocks?
You can make a scoreboard:
/scoreboard objectives add time dummy
Create a entity which counts for you:
/summon ArmorStand ~ ~1 ~ {CustomName:"timeCounter",CustomNameVisible:1}
Make it it invisible and a marker if you want:
/summon ArmorStand ~ ~1 ~ {CustomName:"timeCounter",CustomNameVisible:0,Marker:1b,Invisible:1,Invulnerable:1,NoBasePlate:1,NoGravity:1}
Then a repeating command block which increases this scoreboard every tick (20 ticks = 1 second):
/scoreboard players add @e[CustomName:"timeCounter"] time 1
Put your commands into an execute:
/execute @e[score_time_min=200] ~ ~ ~ effect @a 16 10 1 true
/execute @e[score_time_min=200] ~ ~ ~ time set day
Change the 200 to whatever seconds you want * 20:
Sorry, I first understood your question wrong, just remove the reset.