Timing Question

Right now, no matter what, it performs both actions. Is there a fault in my code? I can't find any.

You need to confirm that the "no matter what" part is true. I suspect that it isn't. Serial.print() the value read from the pin.

  if (cutoff == false) {

Using the == false in that statement makes it appear that you don't understand if statements, booleans, or the equality operator correctly.

if(!cutoff)
{

does the same thing, and looks correct to programmers.

    if (val <= buzz && buzzed == false) {

should be

    if (val <= buzz && !buzzed)
    {
    if (val <= cut && cutoff == false) {

should be

    if (val <= cut && !cutoff)
    {

Now, look at val, buzz, and cut. Suppose, in setup, that val was 800. What values are in buzz and cut? Suppose val was 500. What values are in buzz and cut? Finally, suppose that val was 300. What values are in buzz and cut?

Now, explain why the values in buzz and cut depend on the original value of the battery being above some level. It seems to me that buzz and cut should be relative to the original val (as measured in setup), not constant values only if the original voltage is above some amount.

There may be other issues, but you need to address these, first.

Those other issues? Look at the fact that you have to ifs in loop, rather than if/else if.