Sorry this turned into a thread of me talking to myself. Would have been better just writing up my thoughts and saving them for 24 hours.
The solution is much like the above, except in order to account for rotation, the VectorNormalWS and ObjectPosition nodes need to be run through a Transform to convert world space coordinates to local space coordinates. Then I guess multiplied because for some reason the conversion lowers the value. 5.5 seems to be the right factor.
Posted below is one more picture of the final solution that works for me. Hopefully might be useful to someone else in the future.