It’s less readable and scalable, both in response to frame inconsistency and more complex interpolations and interactions. There’s no need to reinvent the wheel; just stick to tweens
Not really. So long as you aren’t spawning more than is reasonable and you know the loops will end at the times you expect. You effectively created your own tween.
I would still recommend tween service though because it’s pretty standard and can handle sending a conflicting tween. You could technically with your current approach lock multiple tweens into a fight since they don’t run independently and aren’t able to overwrite each other. But you can of course solve this problem yourself. Or it’s not even a problem if you are sure you’ll never dispatch competing tweens.