Upon testing the libcloudspawner, I've noticed that when creating a terminal in Jupyterhub, the terminal starts in /tmp by default, rather than the folder I've specified in c.LibcloudSpawner.notebook_dir
I've noticed on the VM spawned, that the systemd file shows the WorkingDirectory is set to /tmp, perhaps this is a starting point for you?
This is using libcloudspawner 1.3.0.0rc1, Jupyterhub 1.0.0