The problem here is that in the removeCallback it tests for fdPath[0] being LTE 0, which is wrong, it should read -1 != fdPath[0].
This might have been found due to the side effect caused by moving the unlinkSync() back into the try block, which had been moved out of that block, causing the fix for #115 to fail.