1 : to show hesitation or lack of decisiveness or resolution
2 : dawdle
Not to be confused with the familiar dillydally, to waste time by loitering or delaying. Both words come from repetitive use of other words. SHILLY-SHALLY derives from a 17th century phrase mocking repeated self-questioning: "Stand, shall I, shall I?" Dillydally simply comes from dally, to waste time (minus the loitering).
The key difference here posits itself in levels of anxiety. SHILLY-SHALLY clearly suggests a lack of resolution, persistent indecision, self-doubt, while dillydally implies intentional laziness and delay. I might SHILLY-SHALLY over whether or not to call off from work when I'm sick, whereas I would only dillydally in the face of a task like returning a library book on time (although, the latter scenario borders into SHILLY-SHALLY at the Portland State University library, where overdue fines are an ominous $.50/day).
Regardless, neither of the above are often used in speech because they both sound ridiculous. In place of SHILLY-SHALLY there are words like hesitate or falter, and it's safe to say much of the English speaking world would choose the word procrastinate over dillydally.
I mean, perhaps these are gross generalizations, but that's the mood I'm in this morning. To be truthful, I've discovered there is a demographic who uses this terminology, without which there wouldn't be the above pullover hoodie.