Accelstepper homing every time?

  while (digitalRead(home_switch)) {  // Make the Stepper move CCW until the switch is activated   
    stepper.moveTo(initial_homing);  // Set the position to move to
    initial_homing--;  // Decrease by 1 for next move if needed
    stepper.run();  // Start moving the stepper
    delay(1);
}

There is no excuse for the delay() in there.

You do NOT want to change the value of initial_homing until you KNOW that the stepper has stepped.

  while (!digitalRead(home_switch)) { // Make the Stepper move CW until the switch is deactivated

Wouldn't it be better to just count how many steps is needed to do that, and step away from the limit switch that number of steps every time?

is there a way I can force it to home off the home switch every loop, so it only has the run to 70 turns to go wrong?

Of course you can do that.