1.- No importa que todo este en el mismo archivo, aunque lo ideal es que esten en archivos separados.
1.- Si claro, habria una funcion que generaria un código al momento de entrar a la pagina del formulario y lo colocaria en un campo oculto de tu form.
3.- En tu base se agregaria un campo adicional donde se almacenaria dicho codigo, podrias utilizar uniqid() para darle mayos exclusividad o combinar:
o algo si.
luego si pasa lo que comentas y se inserta el registro pero no emite la respuesta por a falta de internet, la funcion de insercion validaria dicho codigo que va desde el formulario que quedo en memoria cache, si ya se encuentra insertado, emite la respuesta respectiva.