In this code portion, you have decided with 1 test that if the dumpin is HIGH, to dump the N2O. In the next portion of the code you do 1 test to decide to trigger the ignitor. In both cases the delay is after the result of the "if" has began. I am wondering if you want to "double check" the pin before passing the "if" statement.
val = digitalRead(dumppin); // Read dump trigger input value and store it in val
if (val == HIGH) { // Check if dump trigger has been tripped
analogWrite(valvePin, 255); // Open valve and dump N20
delay(15000); // Wait for 15 seconds
analogWrite(valvePin, 0); // Close valve