if you want to react to your button press while the led is on for 10 seconds, you can not use delay() since that blocks the processor from doing anything else while it is waiting. Look at the Blink Without Delay example in the IDE (File->examples->02.digital->BlinkWithoutDelay) to learn how to track elapsed time while still doing other things.
You probably also want to know when the button is pressed, not if the button is pressed.
You are at an early stage in your arduino journey. You have fallen into the same trap that most beginners do and are using blocking code (delay). You need to think about and study:
millis timing (blink without delay example)
state machines
state change detection
how the loop function works (as fast as possible)
Probably the most important concept for you to grasp is the loop function. It is named appropriately. It loops round and round very fast, thousands of times a second if you code well. You are currently writing linear code rather than looping code. When using 'delay' you are telling the microcontroller to not do what it is designed to (super fast machine-speed looping) but to start doing things in a human timescale (very slooooooooowwwww for a machine). This is intuitive to us humans but entirely misses the point of a microcontroller. You need to get rid of blocking code and instead use millis (the microcontrollers clock) to check the time every loop and then work out if the required time has elapsed for you to do something such as turn on your LED. This is slightly more complicated than it first appears because the loop will just keep doing the same thing each time so you need to understand state machines. These are just a variable that you change to store what state you want your code to be in and depending on the state determines what code you run.
To start timer check millis and record in a variable eg startTime(check clock and remember time).
Decide on delay time and set in a variable eg delayTime is 10 seconds (how long you want the timer to run for)
Each time through loop check the time elapsed and see if it is greater or equal to the delayTime (is time up) eg current time minus startTime is >= delayTime
State machine:
set state in a global variable eg state is 0
change state when a condition is met eg if timer is up state =1
if state is 0 do something
else if state is 1 do something else.
Look out for your variables being set in loop every cycle. You need to remember that code runs every loop unless it is protected by being part of another scope (outside the {} of loop or inside the {} of a block of code that is not going to run such as an if statement where condition is not met)