exec вызывает Вашу программу через вызов оболочки,
сначала он вызывает оболочку в которой уже вызывается введенная команда, т.е. Ваша программа.
Соответственно, возвращаемый PID принадлежит не программе, а оболочке.
Если Вы хотите вызвать программу напрямую без вызова оболочки, то используйте execFile.
----
Или используйте spawn, как посоветовали выше.