Having trouble making Views treat external content as nodes/entities
I would probably not go down the the road of using Views (or Ctools) plugins at all here. (And I'm a big fan as well as proponent of Ctools and it's plugin architecture.)

I would create a new entity type, or a dummy content type of a node, and then take over the loading of said entity/content type with hook_entity_load.

Why integrate with Views only, when you can integrate with Core instead, possibly even with less effort?