Glad you got it working eventually
No the actual problem was that you started another timer without an id and that was the one that kept running as explained above. The code I posted in post#6 was from a working example.
You have changed your code to more or less match now anyway.