Lo correcto es efectuar el INSERT y si no hay error, recuperar el valor del autoincremental inmediatamente después, si hay error al recuperar el autoincremental, ahi si se procede a recuperar esa transacción perdida.
En un entorno de muchas inserciones, si no pueden recuperar el Id, piensen en insertar de nuevo, no en buscar el último, porque el último puede que no sea el del ultimo insert del usuario que tuvo problemas, puede ser de otro usuario que alcanzo a insertar después.
Hay que tener en cuenta que la falla de la conexión (antes de recuperar el id) hace que se pierda el enlace, y la conexión se pierde dependiendo de la fiabilidad de la red.
En mi caso, cuando hago el insert, al registro nuevo le pongo un estado de "en creación", y que usuario (al menos) hizo la inserción.
Luego recupero el id, pero puede darse de que la inserción se haya hecho bien, pero falló la conexión, y a nosotros nos da error el sqlexec por falla de conexión y no por falla del insert. Entonces, en el proceso de recupero, antes de hacer un nuevo insert, recupero para ese usuario el id de instancia del último registro que tenga un estado de "creandose", si no hay, puedo hacer in nuevo insert, si aparece uno, actualizo dicho registro con los datos pertinentes, en lugar de insertar.
Saludos: Miguel, La Pampa (RA)