tar/dd - Error writing to tape drive - Device or resource busy

The key to this problem lies in the error message. It starts with 'tar'. Tar should be writing to stdout as it always does, not to the drive. dd does the writing to the drive. It turns out that if TAPE variable is set tar chooses to write to the tape drive instead to the pipe. So I fixed this by passing '-f -':

tar -b 128 -c -f - *| dd of=$TAPE bs=65536 status=progress