An alternative approach is to modify what clicking on the file link does. That way you choose when to open it in the editing program. Below I add a menu to the file link with completion that gives you an option to open it in inkscape. Apparently you cannot open a nonexistent file in inkscape, so there is some code to create one from a template first.
(defvar template-svg nil
"Blank document for inkscape. You cannot create a file at the
command line, so we put this template in and open it.")
(setq template-svg "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc=\"http://purl.org/dc/elements/1.1/\"
xmlns:cc=\"http://creativecommons.org/ns#\"
xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"
xmlns:svg=\"http://www.w3.org/2000/svg\"
xmlns=\"http://www.w3.org/2000/svg\"
xmlns:sodipodi=\"http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd\"
xmlns:inkscape=\"http://www.inkscape.org/namespaces/inkscape\"
width=\"744.09448819\"
height=\"1052.3622047\"
id=\"svg2\"
version=\"1.1\"
inkscape:version=\"0.92.2 (5c3e80d, 2017-08-06)\"
sodipodi:docname=\"some-sketch.svg\">
<defs
id=\"defs4\" />
<sodipodi:namedview
id=\"base\"
pagecolor=\"#ffffff\"
bordercolor=\"#666666\"
borderopacity=\"1.0\"
inkscape:pageopacity=\"0.0\"
inkscape:pageshadow=\"2\"
inkscape:zoom=\"0.35\"
inkscape:cx=\"375\"
inkscape:cy=\"520\"
inkscape:document-units=\"px\"
inkscape:current-layer=\"layer1\"
showgrid=\"false\"
inkscape:window-width=\"460\"
inkscape:window-height=\"438\"
inkscape:window-x=\"871\"
inkscape:window-y=\"33\"
inkscape:window-maximized=\"0\" />
<metadata
id=\"metadata7\">
<rdf:RDF>
<cc:Work
rdf:about=\"\">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label=\"Layer 1\"
inkscape:groupmode=\"layer\"
id=\"layer1\" />
</svg>")
(defun inkscape-open (path)
"Open the path in inkscape"
(interactive)
(unless (f-ext-p path "svg") (error "Must be an svg file."))
(unless (file-exists-p path)
(with-temp-file path
(insert template-svg)))
(shell-command (format "inkscape %s &" path)))
(org-link-set-parameters
"file"
:follow (lambda (path)
(let ((actions '(("find-file" . find-file)
("edit in inkscape" . inkscape-open))))
(funcall (cdr (assoc (completing-read "Action: " actions) actions)) path))))