Thanks Jeff,
In the end I realized I needed to specify the bufferSpatialReference if specifying the units, and was able to replicate using the test harness. The UNIT_NAUTICAL_MILE constant resolved to 9030, so don't think it would matter which I used.
It's now working OK, but will look at the Geometry Engine solution as well.
Thanks