beginElement и onend новые фичи и еще плохо поддерживаются браузерами. Нормальным способом сделать анимацию на svg можно с помощью библиотек на js (animejs, kutejs, gsap).
Я не знаю нормального способа как сбросить smil анимацию, можно клонировать тег
animate
, заменить оригинал клоном и клону задать атрибут
begin = performance.now()
.
https://codesandbox.io/s/graph-animation-yglnz?fil...
P.s. свойства stroke-dashoffset и opacity должны нормально анимироваться через css (keyframes/transition), так что от smil анимации можно вообще избавиться.