Syncing Animations to Sounds which are already played?!

You are leaving the Animator enabled and also updating it manually. I don’t think that’s your main issue, but it doesn’t seem right.

Also, you are never updating startTick so the value you pass into animator.Update will constantly be increasing when it is essentially just supposed to be Time.deltaTime. I’m honestly surprised it’s working at all. It could even just be completely ignoring your Update calls since the Animator is enabled.

I’m not quite sure what your real issue is, but if it’s just a lack of control over Mecanim then you should check out my Animancer plugin. There’s a link to the Asset Store in my signature, but I recommend you try the v3.0 Open Beta I posted recently (not really a Beta anymore since I just submitted it to the store) which includes much better documentation and lots of detailed examples to explain how to use it.