I repeated the steps - I/O calls remains stuck only if I forcibly remove the usb-storage module, otherwise dd eventually returns from D state and exits cleanly. I think I was just too unpatient after ctrl-c-ing the dd process. Sorry for all the trouble.