Problem is, half the time I complete something I end up with 3 more things on my "MUST" list.
Those things should go on NICE or SHOULD list because you should define and lock the MUST list at the beginning of the project. Just to prevent feature creep.
For the minimum viable product, cut off the things. The first version shouldn't do everything you imagined.
Alternatively, another problem is I can't complete something because I need to do something else first.
Prioritize tasks, sort them and complete them one by one, starting from the top of the list. Do not skip a task until you have a somewhat working solution. Having something is always better than nothing. You can always come back and improve it later.