Make Zenmap use SIGTERM (instead of SIGKILL) for "Cancel Scan" so that Nmap has a chance to shutdown cleanly.
However, if Nmap is still running after 5 seconds, send a SIGKILL.