Documentation says: "This signal is emitted when the animation has finished naturally. It is not emitted when running is set to false, nor for animations whose loops property is set to Animation.Infinite." https://doc.qt.io/qt-5/qml-qtquick-animation.html#finished-signal
Though I am changing running to false through the states PropertyChange, it still emits finished() instantly.
Check the attached file, notice that "finished" message appears even if you click just for a moment.
Don't know if the usual Animation type has the same issue, but I guess TimelineAnimation inherits NumberAnimation, so they can share behaviour.