Hola otra vez:
Si se cancela la acción es igual que si se cierra la ventana sin más...
Si se hace submit y se cierra, debería cerrar la ventana el propio CGI, y si en vez de hacer el submit en la misma ventana, se hace a otra (con el atributo target), tan solo deberías poner window.close() después de el submit del form.
Saludos