I will look into arrays after I have this second button working.
The operation of the switches has nothing to do with arrays. In fact, you need to dump all that code, and simply print the state of each switch each pass through loop. You need to confirm that the switches are wired correctly.
You are not using the internal pullup resistors. This means that you need an external resistor wired with the switch, which makes for much more complex wiring. How are the switches wired?
What do you want the second switch to do?
It seems to be at the moment, its waiting until the huge delay is over until it changes the delay back again, do you have any idea of another way I can achieve the same results, or to "override" the large delay.
That is exactly what is happening, which is why we've been telling you not to use it. You need to study the blink without delay example.