I finally got it to work after hours of trying. Make sure you're using at least sn0wbreeze 4.7r2 (although ih8sn0w just released 4.7.1. It contains a fix for those with iPhone 3Gs/4 mute switch issues). What seemed to be the most important step was using sn0wbreeze itself to boot my iPhone 4 into pwned DFU. I previously tried to use iREB, but I would constantly get a 3194 error even after making sure I got rid of Cydia SHSH server IPs from my hosts file.