How to properly suspend via command
Solution 1:
AFAIK the correct command is systemctl suspend
or hibernate
as this command uses Systemd and is preferred since 16.04
Link to prior similar question. In the comments/answers section they say the old dbus method (which is your first example command) supposedly was deprecated
Solution 2:
In systems before 15.04 you use dbus approach only. On Ubuntu 15.04 and newer you use both, because Ubuntu started systemd init system. Both are proper, they just use different programs to achieve same result.
Difference is that systemd is init system, it controls starting other processes at boot. dbus isterprocess communication system and is most useful in desktop to allow users do some tasks without need for root access