This is not really a good use-case for gate. Gate basically prevents changes downstream while it is disabled…it doesn’t “become nothing” or reset when it is disabled.
To keep your current code, the select node can have X# inputs hard-coded to 1, 2, 3. The equal nodes can be used to pulse the delay nodes directly.
A better solution is just to use count output to feed delay-T. If you want to be able to change to other times in the future, you can feed count to nth-input-IDX instead of feeding directly to delay-T.
Specific solution will depend on how you want to handle specifics. After 1st button press, do you wait 2 seconds for more button presses before turning on LED? What happens if button is pressed while LED is on after time has been specified?
Assuming you want to wait 2 seconds to turn on LED & ignore button while LED is on, that means button can only change count while count is zero OR 2 second delay timer is active. Only start the 2 second delay timer if count is zero. Once 2 second delay timer is done, we start led delay timer (using count as delay time). When led delay timer is done, we reset count to zero & restart the process.
Just noticed this allows count to go higher than 3. To prevent that, you can add “and count < 3” between the “or” node & defer so button is disabled once count hits 3.