It's not entirely clear to me what you're trying to do. If you want to do something where you effectively draw the path so far, then change layer, the carry on digitizing starting from the last point - you could do that easily enough by either having a bindkey which uses the global list of points that have been collected so far to create the path, and then change the enter function to pre-seed the points with the last entry in the global variable nvCreatePathCurrentPoints. Or you could make it do a finishEnterFun() and then call your orginal nvCreatePath() again - but modify it so that it takes an optional list of points. Something like:
list( "Point at the first point of the path:"
"Point at the next point of the path:"
; comment out if you don't want the form to appear initially
hiSetBindKey("Layout" "<Key>F8" "finishEnterFun() leSetEntryLayer(\"Metal2\") nvCreatePath(?points last(nvCreatePathCurrentPoints))")
But maybe I've misunderstood you?