For the moment, taking a snapshot of the position at startup and then using incremental is probably a good starting point.
It's really easy, in principle. The only thing that isn't obvious is how to get the data and then store it and stop updating once you have it.
Sample-hold can be used to store the initial position:
linuxcnc.org/docs/2.8/html/man/man9/sample_hold.9.html
The trigger bit could be something read from the drive that is guaranteed to always be true after the first read. Unless mb2hal has pins that (for example) count valid reads?
So,
full-turns -> convert to float
initial counts -> convert to float
turns and counts -> sum2, turns scaled by 65536
sum2.N.out -> sample-hold.0.in
(Magic here to latch the sample-hold)
sample-hold.0.out -> sum2.M.in0 (gain 1)
encoder.N.position -> sum2.M.in1 (gain 1)
sum2.M.out -> PID feedback, axis position feedback, etc.
Then specify HOME_ABSOLUTE_ENCODER in the INI.