I am currently running my Pi 3 headless - no monitor, mouse, keyboard. It is set to boot to multi-user.target (command line). I connect to it with ssh and execute a script to start a VNC session which I then connect to with Vinagre on my CentOS 7 workstation. I use this same approach on 4 CentOS 7 servers and had been using it with Ubuntu Mate 16.04 on an old Pentium 4 PC which was used as an ersatz server until I replaced it a couple of weeks ago.
On the other machines the screen saver/lock screen would activate after the time period which I had specified in preferences. I could also manually lock the screen using a launcher which I added to the panel. On the Pi, this does not happen. The screen saver will never activate and the lock screen launcher does nothing.
When I had the Pi connected to a monitor and ran in gui mode (graphical.target) the screen saver and lock screen launcher functioned as expected. I am considering setting the default to graphical.target on the Pi and seeing if that will have any impact on the VNC session. I sort of hate to utilize the resources for an X session which I will not use. Any other ideas?