Personally I feel like duvets should have dress zipper around the non top sides, so the top is actually the middle of the cover and of taco folds over the duvet then zips on. Then I can't bunch because it has equal tension all the way around.
As for your question, I use bias tape or scrap t shirt. Cut it to double the width you want, fold it lengthwise, and stitch it so it makes a tube.
If you put it on the bottom side of the duvet blanket and cover(the side that touches you when you use it) it won't have viable stitches on the face and most people don't sleep squarely in the middle of the bed so it won't bother you too much.
Cut a 2in length of your tie fabric and a 3in length. Stitch either end of the 2in length to the duvet to make the loop, then the middle of the 3in to the cover to make the tie. I would suggest a box and x for both locations, basically stitch a square, then stitch diagonally from corner to corner. Its very sturdy.
As for snaps, it's the same situation, same placement, just follow the instructions for attaching the snaps you have. Some stitch in, some rivet.
Lastly, one more silly idea. If you have a whimsical or rustic looking duvet and cover, you could buttons to the inside of the cover and buttonhole through the duvet and top of the cover. Then you button through the blanket to t the top cover and get maximum stability with no ugly stitches, and your duvet looks like a button bound cushion for extra cozy factor.