I will try to start with the basics, and kind of move into what helps me.
The idea is to capture everything you want, need, or might consider doing in a system you trust, that way you are secure in forgetting to constantly remind yourself to "buy wine" in your mind. Part of the general system suggested by GTD is to start with a Next Actions list, but eventually you will start grouping things together in an evolutionary way - tailoring a system that best suits you. You could merge them all into one list if you wanted to, using a naming convention: Call - Uncle, Errand - Wine, Online - Battery. What I'm suggesting is, in an abstract way, it's all stuff; so, it's all one big list - it just tends to be easier as separate lists based on context to find something worthwhile to do quickly. Not near a computer - why are spending time looking (even 5 seconds) at the "buy battery" ticket? The point, however, is to get it out of your head and into a system you trust, so you don't have to remember it. (It took me a while to trust my system and believe that I actually had captured "Do X" in a list, in the Reminders app, or on my calendar - even if I didn't remember exactly which list.)
The first thing is defining the difference between a task (to-do) and an event. An event is something that cannot be done at any other time. So, for the monthly call to your uncle, if it occurs on the same day of each month, and you have both agreed - that is an event, and should probably be placed on the calendar as a repeating event.
A to-do is something which has, in the GTD paradigm (at least as I read it), a context - and that's pretty much it (if it has a due date or not isn't that important - but, if it does should probably go on the calendar - prior to the actual due date or be a recurring event to work on it for X period per day before the due date). You could also put your monthly call to your uncle into a "calls" list if it does not absolutely have to be done on a certain date.
Now you did mention a couple of things that leak over into Randy Pausch's Time Management talk and The Seven Habits of Highly Effective People - which is the concept of priority and urgency. Another point is to maybe break away from a next actions list to rule them all mindset...this is tied to the context thing, which we'll get to.
But, what it sounds like you're missing, at least from the way I'm reading, is a processing event(s). And, possibly, even a method by which you can easily figure out what to do next. I tend to do mine each morning (but evening works too), as well as weekly (this is more 7 habits than GTD), and monthly.
When I wake up the first thing I do is check my calendar. (If you aren't familiar with The Big Rocks concept watch the third link in the footer.) These are the items which cannot, under any circumstances happen on any other day or time. Then I move to to-dos which I flagged as wanting to have done that day - I use the Reminders app by Apple which is preinstalled on all their platforms - but anything where you can create a reminder, set a date, and have them group together for you is pretty helpful. These represent things I want to get done but don't necessarily have to do that day. For example, I have a weekly reminder to do laundry - but it's not imperative I do laundry on Friday, Saturday, or Sunday.
Now, comes the fun part - your wine example.
In GTD he talks about having multiple lists based on context; an "errands" list, for example. This is where the wine goes. Doesn't matter when you do it (yet), and isn't pressing. But, what's important is that the next time you are out - say you go to pick up a friend at the airport - check the errands list. You are out and about. Will you be passing a place to pick up the wine? Do it on the way or on the way back. Unless you just don't have the energy or time - the last part of the GTD book. Now, if you aren't out and about - it's pointless to have any of your errands on your next actions list - because you can't do any of them anyway.
As for buying the battery example - will you do it online? Or, do you need to go to the store? Do you shop online often? If so, is it usually from the same place (Amazon, for example)? If you will be buying it from Amazon, and you shop there often - maybe start an Amazon list and the next time you're on Amazon - bust out the list and purchase everything you can at one shot. Or, maybe you just need internet access; so, as one of David Allen's examples - have an "online" list and put all those things you can only do while online on it (buying the battery in this case).
To kind of sum up. I tried to do the "next actions" only list - that became unwieldy; so, I started evolving a method and using a tool which created a "today" to-do list for me, allowed me to make as many lists as I wanted/needed to, and allowed me to easily flip from one list to the next. Also, setting up regular intervals to check your "stuff" is important - I believe both Covey (7 habits) and Allen (GTD) recommend the checking of the status as calendar first, then to-dos due today, then "everything else". I would also recommend intervals for you to check the various levels (GTD) I do a 50,000 foot view every month, a 7,000 foot view every week (GTD + 7 habits), and a rubber meets the road every day. So, you have one to-do list for the next day, but it is comprised of those things which you actually said you wanted to do on/by/around that day; however, you allow for those tiny moments when you can accomplish a small thing (like buying wine) while you are doing a big thing (picking up your friend at the airport so he/she isn't stranded).
Oh, and for the question in the actual title - put the actions related to the project in a list specific for the project itself - then rearrange them in order. You can then use a naming convention (recommended in GTD), like if you're waiting for someone else on something, title a task WF - Jane to finish task.
In conclusion, no matter how complex the system, eventually, you will have to break a tie or conflict. You have hit the magic button, the machine spits out "mop the floor" - your significant other has offered to rub your back. Do you tell him/her, sorry, let me put "receive back rub" into the machine, and when it spits out your ticket I will let you know. Further, how do you choose to take the action of putting something into the machine in the first place? Don't spend more time developing and/or maintaining your system than you do actually getting stuff done...it's counterproductive.