Wordpress - Can an action callback prevent the parent from continuing execution?

A creative solution would be to modify the actual form_id in the database during gform_before_delete_form so none of the proceeding actions will modify the form.

Then you can hook into gform_after_delete_form and modify the form_id back.

gform_before_delete_form

form_id = form_id + 1000000

gform_after_delete_form

form_id = form_id - 1000000 

(assuming you have less than a million forms!)

rough code:

public function preventGravityFormDeletion()
{
if( $someCondition )
    {
    global $wpdb;
    $temp_form_id = 1000000+$form_id;
    $sql = $wpdb->prepare("UPDATE $form_meta_table SET form_id = $temp_form_id WHERE form_id=$form_id");
    $wpdb->query($sql);
    $sql = $wpdb->prepare("UPDATE $form_table SET id = $temp_form_id WHERE id=$form_id");
    $wpdb->query($sql);
    }
}
add_action( 'gform_before_delete_form', array( $this, 'preventGravityFormDeletion' ) );

Short answer: no.

Long answer: also no. Actions don't work that way.

Edit:

To elaborate and make your question totally generic:

function foo() {
  bar();
  return 1;
}

function bar() {
  // stuff
}

There is nothing you can put in stuff that will prevent a call to foo() from returning 1, other than halting script execution entirely with die or exit.

Note: Throwing exceptions won't help either, because this has the same effect as halting script execution unless some previous caller catches the exeception.

Now, if this function is in a class somewhere, then you can define a subclass of it and replace this function with one of your own, then potentially use that, thus modifying the way this function works. That's about the best you can do, since PHP doesn't have any sort of aspect-oriented-programming mechanisms in it that would allow you to change function behavior at runtime.