So, you don't seem to be looking for an aggressive strategy and I can respect that. These days I fear the 3 Gate expand far more than the 4 Gate so I often feel the need to be aggressive and cripple the Protoss early, but let's assume for the moment you're not worried about FE Protoss.
The strength of a 4 Gate is not so much a strong early-mid game push, as it is easy to execute. The reason you see so many 4 Gating Protoss (especially in the Gold-Diamond levels) is that its an easy build to understand and get down. There are a number of players who have played 100+ 4 Gate games, so your biggest concern is not dealing with a 4 Gate, but rather dealing with a polished build.
I've said it time and again (as has just about any other good player), nothing beats execution; since the number one way to get good execution on a build is to practice just that build, the 4 Gates you're running against probably have superb execution. As a result, the best thing you can do against a 4 Gate is pick a build and get your execution good. This might seem like pedantic advice as is sums up to "play better," but the reality is that the reason most people lose to a 4 Gate is that they're getting out played. A well practiced, well executed build will beat out a sloppy more powerful build every day of the week.
So the first piece of advice here is: pick a build and stick with it.
Now you talked about wanting to play a macro game, and against an early push like a 4 Gate, that probably means you're planning on trying to hang on for that initial wave till your economy kicks in. There are only three real openings that give you that option:
- 15 Hatch
- 14 Pool/15 Hatch
- 14 Gas/Speedings (with an 18 Hatch)
If you build your Hatchery much later than that you're going to run the risk of falling over to his second or third wave (as your economy won't have kicked in yet). Ideally, you want the earliest Hatchery possible as that reduces the amount of time you have to hold on for, but again here this leaves you vulnerable to any sort of early play. If you can guarantee a 4 Gate, that's fine, otherwise you're more likely stuck with what ever build you've started on.
This leads me to my second piece of advice: Don't deviate from your build. Remember, you're up against a very polished build and if you try to switch builds or deviate from something you've practiced your execution is going to come up second best. Commit to whatever you started with.
Roaches vs Speedlings
This is a tough choice as both are good options. Ideally, if he has a very Zealot heavy army or has a couple Sentries (massive gas sinks) you want Roaches. On the other hand, if he's heavily invested in Stalkers, Speedlings are a must. There is no right answer here as you will most likely be locked into whatever you chose before you see his full army, but I often try to bring both. Early Speedlings are often a must to bring pressure and gain map control (ie. scouting), and without them a single Stalker can provide annoying harassment. From there I often throw down a Roach den, but don't build any Roaches till I see a Sentry. Its always nice to have Roaches as a back up, and you'll have time to build them (as we'll see in a second)
Building your Army
I usually think that telling someone to "scout better," is tantamount to telling them to "play better;" rarely helpful advice, and usually a little insulting, however, most of dealing with a 4 Gate is out playing your opponent, as the build has no real weaknesses to exploit (other than surviving with an expo). As a result, it is absolutely crucial you keep a couple Zerglings outside your opponents base. If you do not see your opponent leave his base (when he does), you will not survive the 4 Gate push. Zerg is a momentum race, and you want to build momentum till the last possible second; the better your scouting, the better you can gauge when that second is.
The entire idea behind trying to keep your expo alive is that you want it to kick in and lead to out macro-ing your opponent, so you'll want to be Droning till the last possible second (ie. he leaves his base). This also means you'll want to stay ahead in your overlord count. Most maps have a long enough rush distance that you can get out a wave and a half of Zerglings, a wave of Roaches or Spinecrawlers in the time it takes your opponent to get to you. This means you're going to have to gauge how many units you need to build before this point based on how big you think the death ball is going to be. The longer he waits to bring it, the bigger the ball. For the fast 6 minute push I usually find ~10 Zerglings or a handful of Roaches is all I need to build before he moves out and then my wave will pop just before he gets there. But remember, the fewer you can get away with the better. It should go without saying you should have a second Queen for larva.
So, you watched your opponent leave his base, you built a wave of units right away, and they just popped when your opponent reached your creep. Now what?
I won't lie, this is the hard part right here. Your goal is to delay the engagement as long as possible. If you can delay even 15 seconds, chances are that means a second wave of Zergling. To help do this I often like to "dance" my units. Give him a look like I'm going to engage then pull back. This sort of brinksmanship will make a lot of players hesitate. Even if it only buys me 5 seconds, that's still faster reinforcements. Better players will charge in in short order and forcefield your ramp. Their goal is to cut you off from reinforcements. I often find that placing a Spinecrawler near my ramp will either cause them to back off from this kind of charge or engage where I have a Spinecrawler or two. If you time it right the Spinecrawler should finish just as they arrive which will usually put them in a difficult spot. If they do back off, you can always "hide" behind your Hatchery. Many Protoss players will welcome free shots on the Hatchery but this is a mistake. Since you're just trying to delay until your next wave pops, the Hatchery acts as a convenient meat shield. Sure you'll have to rush in before it gets below a third life, but even for a well sized 4 Gate push that can buy you almost 20 seconds.
Always remember, don't stop building. Reinforcing in the middle of battle is the best way for you to utilize the small macro advantage you already have, so constantly be building. If the battle is still going, build units. If it looks like you'll win, build Drones; don't leave idle larva.
Once you've fought off the first wave, that second base should start to kick in and you should have a much easier time dealing with his second wave. In the interim, use any remaining units to re-secure map control and take out his Pylon (they always build one, I'll bet you dollars to doughnuts). Usually, if I'm really trying to stick it to the guy I'll also take my third at about 50 food. Since he'll be struggling to deal with my two base army (the difference between a 1 base and a 2 base army is much larger than a 2 vs a 3), he'll usually surrender map control to try and secure his natural. As a result, getting an extremely early third will mean I'll be well saturated around the time his second is just finishing (the ideal opportunity to attack).
I realize a lot of what's in here is fairly general to Zerg, but you have to remember there really aren't any weaknesses to a 4 Gate. There is no silver bullet here you're going to have to out play him if you expect to win.