Cancel the delay

And 100000000000 doesn't fit into 16 bit integer, neither does 100000000000L fit into a 32 bit long.

If you call delay you are absolutely categorically stuck in the delay till it completes, end of story.

Basically don't use delay. Except perhaps in a very simple sketch where there's nothing else to do.

Your code should be reacting to a series of events, and loop() just checks for them one after another and handles any that arise. A timeout is one kind of event. Incoming serial is another, a change to a pin's state is another, etc etc.

Perhaps you need to explicitly represent states? Google "state machine" for more detail.

Note if you really do want a delay that can cancel, write a function to do it:

void delay_till_condition (bool (*condition)(void))
{
  while (! condition())
  {}
}

You can pass in an arbitrary condition testing function to it, such as

bool button_pressed()
{
  return digitalRead (BUTTON) == LOW ;
}

void loop()
{
  delay_till_condition (button_pressed) ;
}