The problem with all that is, generally the X and Y homing position is not nearly as accurate as the Z axis homing.
For example, this is why you see a double home on Z at the start of each print. We home fast so as to not take forever if the platform is the furthest away, but then after the first home, we back off 5 or 10mm and then home again at a slow rate to prevent overrunning the switch. You see, it still takes time for the microprocessor to acknowledge when the switch is tripped and then stop sending pulses to the axis. At speed, we could actually overrun the trip point by a few steps.
Since in most cases, X and Y homing is only about trying to get the print centered into the build area of the platform, these fractions of a mm are not critical and thus we don't normally double home X and Y.
So that is just part of the problem right there.
Then, the next issue is that we put the start.gcode into the file not like a script or function called at the beginning of the bot. You might have missed previous discussions about the controller for the bot but basically, it's COMPLETELY maxed out flash space wise for current firmware. There is no room for even the smallest of additional functions. The alternate Sailfish firmware had to start removing some of the lesser used scripts and functions in the firmware to add new requested ones. Examples of added functions include large card support for greater than 2GB SD cards, improved error handling, ditto printing, gcode temperature override, P-stop, and so on.
Not to mention, recent discussions that stock firmwares have some bugs in the SD card library and can actually corrupt files on the SD card when just reading them.
Let me give a giant thanks to Jake, Dan, Jetty, and others who helped implement P-stop which I discuss later in this post!!!
So, from a technical standpoint, there are so many problems with your idea it's been discussed before and is just not possible. To implement it requires a massive overhaul of the entire system as we know it. The current system is not "smart enough" to read the start.gcode and get the machine set up and homed to a precise and repeatable place to resume a print. Further, it cannot currently parse the entire file searching for the gcode at a certain Z height to begin printing from the middle of a file. Then we get into other major logistical flaws. The biggest one is we home Z min. If there is an existing print on the platform, we cannot home Z min. Because we use steppers, any time they are disabled and not holding, there is no chance they will not be moved and thus we lose all positions.
Now, rather than leave you with no hope, I requested a special feature get added to Sailfish called Pause stop (AKA P-stop). We can pause the bot and this keeps the steppers enabled and even possibly the heaters on depending on how you set up the function. P-stop is basically a modified version of the normal pause function that is triggered by an input to the motherboard. This triggered input can be anything, a button, a sensor, and in particular, an entire separate microcontroller with multiple sensors could be used. There are a couple of starter designs out there, but one thing that needs developed is a custom filament drive in which the motor and the idler wheel which pushes the filament against the knurled wheel on the motor both would have rotary encoders. You would have to sense 3 things here.
Pulses from the stepper driver indicating when steps are called for.
Count from the motor side encoder to detect skipped steps
Count from the idler to compare to the previous 2 things for filament slippage against the pinch wheel.
Then, we also cannot forget other causes such as filament out detector at the spool and spool drag caused by tangles. Also, if we are going this far into print error detection, we might as well sense incoming AC power to a UPS.
A single Arduino board could easily combine all those signals and trip points to send the trigger command to initiate a pause if any condition is met. This would pause the print and send the bot into a lower power mode but still retain positional accuracy and the exact point in the gcode where we could resume the print. If combined with the UPS, this could leave the bot in this state for some time as long as the UPS could keep the bot powered. I think this represents the best case scenarios since it's been discussed that it's basically not possible to write to the SD card given all the limitation and common errors we are seeing today with the current hardware. Simply put, this is about the best scheme we have going.
This is about the only way today without a complete re-design of the entire system we could detect comprehensively common failures and be able to reliably and easily resume a print once the problem is corrected.
It's up to you folks to help design and implement the sensors. The function exists only in Sailfish firmware, you just have to use it.
Here is great information on the Replicator 2 series (2 and 2X) implementing P-stop
Now, recently I had hands on a Cubify CubeX and they do have exactly what I described for the filament feeder. They have 2 encoders, one on the motor shaft, one on the idler and both are combined with the stepper input control to determine when filament slippage happens in the filament feed section of the extruder.
It's basically an aluminum Wade's style setup but most shafts extend to the face of the filament drive and had optical (black and white patterned) discs that obviously where being read by a PCB in front of it, most likely with infrared detectors, No reason many of the off the shelf magnetic rotary encoders couldn't be used.
Again, to recap, the problem is there is NO SPACE for even the smallest of features or functions left in the firmware. At this point, you have to start deciding what other functions are less useful. Rather than mess with firmware and possibly cause print performance issues, it's smarter to use this built in P-stop function and let an external microcontroller do the sensor checking and determine when a failure happens to then trigger the main controller to pause.
Also, keep in mind that P-stop and pause in general must clear the command buffer which might be as long as 16 more gcode segments. SO pause isn't instant and there is no good way around that. Your detection system needs to be sensitive and detect a failure early enough that the print is paused early on when the failure has just begun. But, because I believe we actually see a fair amount of slippage and skipped steps in the extruder under normal conditions, this may be a lot of perceived false or early triggers that also could frustrate the user. You would want to be able to tune the sensors and trigger points specific to your bot and your running condition as well as "acceptable" failure rate.