wp_schedule_event action not running

I think your problem may be in the use of $post->ID. In your code $post is an undefined variable. As you are inside a loop, try get_the_ID() instead of $post->ID:

$post_ID = get_the_ID();

$request_start_time = get_post_meta( $post_ID, '_simple_start_date', true );

if  (date('Ymd') == date('Ymd', $request_start_time)){

    $current_user = $post->post_author;
    $request_date = get_post_meta( $post_ID, '_simple_start_date',true );
    $request_year = date("Y",$request_date);
    $time_year= date("Y");
    $request_time = get_post_meta($post_ID, '_simple_total_hours', true);
    $request_type = get_post_meta($post_ID, '_simple_vacation_type', true);

    update_days_requested((-1 * $request_time), $request_type, $current_user);
    update_days_left((-1 * $request_time), $request_type, $current_user);
    update_days_used($request_time, $request_type, $current_user);


}