As a designer, I tend to think of people as collections of stats and variables. When you pose your question, I can easily picture [Pong_Dev_Interest] decreasing and [Spa_Inv_Dev_Interest] increasing. When the difference between the two is greater than [Dev_Project_Inertia] (somewhat related to [Dev_Completion_Desire]), activity on [Pong_Dev] halts and [Spa_Inv_Dev] starts.
In English: You fail to complete the project because your raw desire to see a finished product is overridden by your lack of interest in the current project. If you really want to finish one, the only solution is to pick one (I'd go with your pong clone) and finish it. Say to yourself "Self, I know that maybe I could have refined that clone some more but gosh darn it sure feels good to kick a project out the door". Then keep working.
When you are bored, keep working. When it's going great, keep working. When it's falling to crap, keep working! Persevere! Be the Little Dev That Could! I believe in you!
Ahem. Got a bit overexuberant there. But you get the drift.
I am following my own advice daily. I got my environment and actors working, built in my win and loss conditions and created the objects the Player will use. I'm basically ready to start doing some level design and my interest tanked. But I do some every day. Every day. One day I will be done.
And it will feel so goooooood.