I know I'm asking impossible but who knows... 
Maybe in the "near" future luatex could adapt user_defined whatsit to
have some more fields where it could store lastskip, lastpenalty,  ...
So that \last... checkers could point to this corresponding field to check the value  if it sees that last node is user_defined whatsit

:)


that is consistent with other whatsits from classic tex like \special or \write, or in fact any node of any type.
\lastskip only picks up a value if the last node added to the current list is a skip.