I've been behind a couple times shipping tasks and projects, and I've gotten feedback that this is something I really need to get better at. One aspect to this is that I take a lot of iterations before I fully understand something - This extra time slows down the planning and overall execution of my work. How can I improve in that regard, and is there anything else I can do to get better at setting targets for my work?
First, I recommend this Q&A on how to better scope out work for sprints. Underestimating the amount of time it takes to fully complete a task is a common failure mode I've seen among junior and mid-level engineers. It's important to remember there's much more to a meaty task (i.e. >2 weeks to complete) besides just coding:
There are more of these steps as companies get bigger and at Series C, I imagine there's a good amount more process than "Just throw the code out there".
One aspect to this is that I take a lot of iterations before I fully understand something...
This is something I talk about in-depth in my Q&A about becoming more independent. In a nutshell, try to ask a bunch of questions (literally every single one you can come up with) all in 1 go as opposed to dragging it out over a long period of time. This will require some planning on your end before jumping into knowledge seeking as you try to figure out all the questions you have. And of course, write them all down after you do this exercise!