The method is not recommended for distances larger than 4km. I am getting reasonable accuracy in terms of the east and north bearings, but for the up direction I am getting error upwards of 1km for distances of 110km (or a 1 degree difference in longitude). The error seems to occur in the WGS84 to ECEF conversion, as the 1km error first appears there. However, the result of the WGS84 to ECEF conversion has been checked against numerous well known and presumably correct oracles such as the results of software like GeographicLib and the Sysense online conversion program.
For example using the WGS84 coordinates of (0,0,0) as a reference point I get the ECEF x,y,z coordinates of 6378137.00, 0.00, 0.00, this is correct. So now using this as a reference point, I then use WGS84 coordinates (0,1,0) and get ECEF x,y,z coordinates of (6377165.58, 111313.84, 0.00). The difference between the two is (−971.42,111313.84,0.00). This means that moving 1 degree east in the WGS84 coordinate system will give a -971.42 meter drop in x direction of the ECEF coordinate system (which is straight down relative to the initial position 0,0,0). This cannot be possible because the curvature of the earth is about 8 inches per mile, and there are 68 miles in 110 km. So the drop should be 544 inches or about -13.8 meters, not -971 meters.
Either the two oracles that the result has been checked against are incorrect, or the error is an inherent problem with the WGS84 conversion formula.