How to recover faulty USB drive

I was asked to help read a friend’s USB disk, a WD My Passport 1TB. The disk was used on Windows (unknown version), but I’m using a Mac.

When plugged in, the device does not mount. In Disk Utility it shows up but the single partition is greyed out.

With diskutil list I get:

$ diskutil list
/dev/disk2 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *1.0 TB     disk2
   1:               Windows_NTFS Monyjc                  1.0 TB     disk2s1

With diskutil info I get (omitting other drives):

diskutil info -all

    Device Identifier:        disk2
    Device Node:              /dev/disk2
    Whole:                    Yes
    Part of Whole:            disk2
    Device / Media Name:      My Passport 0830

    Volume Name:              Not applicable (no file system)

    Mounted:                  Not applicable (no file system)

    File System:              None

    Content (IOContent):      FDisk_partition_scheme
    OS Can Be Installed:      No
    Media Type:               Generic
    Protocol:                 USB
    SMART Status:             Not Supported
    Total Size:               1.0 TB (1000170586112 Bytes) (exactly 1953458176 512-Byte-Units)
    Volume Free Space:        Not applicable (no file system)
    Device Block Size:        512 Bytes

    Read-Only Media:          No
    Read-Only Volume:         Not applicable (no file system)

    Device Location:          External
    Removable Media:          No
    Virtual:                  No
    OS 9 Drivers:             No
    Low Level Format:         Not supported
    Device Identifier:        disk2s1
    Device Node:              /dev/disk2s1
    Whole:                    No
    Part of Whole:            disk2
    Device / Media Name:      Untitled 1
    Volume Name:              Monyjc

    Mounted:                  No

    File System Personality:  NTFS
    Type (Bundle):            ntfs
    Name (User Visible):      Windows NT File System (NTFS)

    Partition Type:           Windows_NTFS

Trying to read the partition table tells me the resource is busy (after a while, sometimes a long while):

$ sudo dd if=/dev/disk2 of=diskdata2 count=2 bs=512
dd: /dev/disk2: Resource busy
0+0 records in
0+0 records out
0 bytes transferred in 3.006429 secs (0 bytes/sec)

And fdisk gives an empty table after a delay, perhaps because it also couldn’t read the data (though there’s no error reported):

$ sudo fdisk   /dev/disk2
Disk: /dev/disk2    geometry: 121597/255/63 (1953458176 sectors)
Signature: 0x0
         Starting       Ending
 #: id  cyl  hd sec -  cyl  hd sec (     start -       size)
 1: 00    0   0   0 -    0   0   0 (         0 -          0) unused      
 2: 00    0   0   0 -    0   0   0 (         0 -          0) unused      
 3: 00    0   0   0 -    0   0   0 (         0 -          0) unused      
 4: 00    0   0   0 -    0   0   0 (         0 -          0) unused     

Would I be right to assume that the partition table is not actually empty – because diskutil determined that it is an NTFS? Otherwise how does it know the partition type?

The delays that occur when doing various commands vary – at the moment, a second or so, but earlier they were tens of seconds. Does this imply that the disk is defective, quite apart from (perhaps) missing a partition table? Or just that the programs are scanning the disk (though dd surely can’t be doing that).

Does anyone have suggestions for how to recover the disk and its data?