`dd` never terminates on OS X
This might not really answer the question, but might provide a solution.

Instead of using dd which seems to behave oddly for you, just use cat or cp. At least on OS X, they work very well on block devices.
So:

sudo dd if=/dev/disk1 bs=1m | gzip -c &gt; disk.image.gz


becomes

sudo cat /dev/disk1 | gzip -c &gt; disk.image.gz



If you want the reverse, just redirect gunzip's output:

cat disk.image.gz | gunzip -c | sudo dd of=/dev/disk1 bs=1m


becomes

gunzip -c disk.image.gz | sudo tee /dev/disk1 &gt; /dev/null




If you just want to copy a block device

sudo dd if=/dev/disk1 of=disk.image bs=1m


becomes

sudo cp /dev/disk1 disk.image




If you just want to copy an image to a block device (e.g. Raspbian to SD card)

sudo dd if=disk.image of=/dev/disk1 bs=1m


becomes

sudo cp disk.image /dev/disk1


This also prevents any hassle with block sizes.