I spend almost the entire match in shield and look for openings. I find it just a tad easier than keepaway matches because while both matchups are very defensive, at least when sonic has an opening he's right there in your face or somewhat vulnerable to an uair.
I find sonic doesn't grab that often, and is vulnerable to attacks if he does go for a grab.
This is similar to how I play the match-up. In terms of frustration, the difference between this match-up being irritating is whether this match-up IS keep-away, which is the optimal strategy for Sonic against characters like DDD. What you must be prepared to do is to react to spin dash/dash mix-ups, which are plentiful. For the basic Sonic, which is essentially all that exists at the moment, you should be able to grab spin dash on reaction -- from a distance, obviously -- and then you need to do your best to take his stock from that grab through Uthrow/Dthrow reset combos (i.e. Uthrow/Dair>Uair/Nair>Re-grab>Repeat) that put him off-stage, where he's vulnerable. If you can't do that or find the opponent's mix-up timings too difficult, then you shouldn't bother trying to compete with Sonic's fast-moving ground game at all (keep an eye out for stationary attacks that you actually can punish with a read and rolling through, like Ftilt), then just spot dodge any fast movement toward you. If they turn it into spin dash, you have enough time to recover and then react again. Their counter to this is to wait, which then allows you to grab/Dtilt/etc.
When the opponent is off-stage, your primarily goal -- as in neutral -- is to bait them to do something that doesn't prevent you from counter-attacking and then to counter it. DDD is slow in horizontal speed, but his range allows him to punish most any whiffed attacks/air dodges and his fast-fall speed is so much greater than most other characters that he can react to something like a fast-fall air dodge and still catch up to punish. This is especially critical off-stage for two reasons: Your opponent
must react to a situation that you do not give any tells in (gravity is a third party) and also because moves are more likely to finish due to being closer to the blastzone. At neutral, DDD's attacks do not kill well. He has kill
potential that is important for punishing broken shields, but for the kill moves that DDD can expect to hit with they are only passably effective and usually require the rage effect (an unfortunate problem for most of the cast). What DDD
does have is a plethora of moves that place the opponent off-stage, and often at a vertical height that means that a solid read that allows you to take you opponent's jump will lead to a gimp at low>mid-% on characters like Sheik, Captain Falcon, etc.
In terms of follow-ups, DDD's non-grabs are mostly going to be the late/meaty hits of Fair/Nair and early-canceled Uair, so rather than thinking about what combos, focus on defeating your opponent through superior positioning. This also means, however, that Sonic being forced to jump cancel his spin dash because you spot dodged it is a victory. Why? Because he can no longer spontaneously adjust his horizontal movement, the player is going to feel less comfortable, and Sonic now has an inevitable weakness that DDD doesn't: At some point, Sonic
must touch the stage, a platform or a ledge.
This means that you know for certain a place that he's going and that his options when he reaches one of these three possible destinations that he can land with an attack, air dodge to cover pre-emptive attacks, spin dash to cover delayed attacks, fall through a platform to mix-up his landing timing or, most importantly, reset his position to try again with his air jump/Up-B. If you catch him without an air jump or, especially, Up-B, a good Sonic will trade damage just to land on the stage in order to recover these tools or will throw out an attack if they know that you are aware of this. Either do not let them or be prepared to punish that specific landing (which becomes relatively easy since you know for certain what their goal is) as hard as possible; this is one of the few times that Fsmash/Down-B should come to mind. As for every thing else, the most important time for punishment outside of neutral is when landing. Thanks to DDD's large range, it's a simple matter of timing your large range and considerable attack duration to cover every non-reset option that I listed (notice how important air jumps are; if you understand this then you can see this weakness then you can make it a strength for DDD since he has multiple jumps that gives him one of the most dynamic landing mix-up sets in the game).
This is not a short task, but if you truly want to optimize your punishments so that Sonic making a mistake at neutral costs him a stock, then this is your method to do so and the future to optimize DDD in general. Remember: Winning the position is the key to winning the war.
There's something else important that I was supposed to put in here, but I forgot it while typing.