Hi Rajat,
I will try to answer the best I can.
For "Fail-over", I assume you are talking about "High-Availability" (as listed here[1]). In that case, the fail-over is in another region, this way if the zone fails, it takes over in the other region. The process is mentioned here[2] and it's automatic. There will be about 60secs of unresponsiveness. You must ensure that your web-framework is set to reconnect when connection is lost. Otherwise, the IP and connection string remain the same. You may need to do a failback to go back to normal, as it does not automatically revert.
The restart vs stop/start is almost the same. However, as described here[3], restarting an instance empties the instance cache, which results in a temporary reduction in performance. The connection problems remain the same and how long it takes can vary from a few seconds to a few minutes depending on many factors. The time to boot-up is analogous to creating any instance in GCP, but without configuration time. As for the connection error, it is not listed anywhere (because it depends on your libraries, protocols, etc. But I would assume it a 500. Don't quote me on that), so you would have to test.
Hope this helps.