I don’t have any 3B+'s so cannot speak from experience, but since the bit doesn’t need setting and in the RPi guide there is mention of a certain image date as to when this works from, I suspect the PARTUUID may be needed. The “/dev/sad2” was a quick and dirty way of setting up a hdd as the PARTUUID can change when any changes are made to the partitions and so because the emonsd adds a 3rd partition, the “/dev/mmcblk0p2” address has continued to be used for the same reason.
If you boot to the sdcard, then mount the hdd, take note of the PARTUUID prefix (50c2568e ? ) and then edit both the cmdline.txt and fstab to use the PARTUUIDs and partition number ids instead you might have more joy.
The cmdline.txt should have something like
root=PARTUUID=50c2568e-02 in place of the
root=/dev/mmcblk0p2 and the fstab will look something like
PARTUUID=50c2568e-01 /boot vfat defaults,noatime 0 0
PARTUUID=50c2568e-02 / ext4 defaults,noatime 0 1
PARTUUID=50c2568e-03 /home/pi/data ext2 defaults,noatime 0 2
This is far more robust but it can be a pain since you must be sure to update the cmdline.txt and fstab before rebooting if changes are made to the partitions.
I do not know for sure if this is the issue, but either way, this is the better method if you can manage the PARTUUID changes (or avoid them by not changing the hdd partitions) because one day you might leave another usb drive attached and reboot (power interruption?) and “sda2” might get assigned to another drive and therefore not boot.
from the guide
Starting with the 2017-04-10 release of Raspbian you can install a working Raspbian system to a USB mass storage device by copying the operating system image directly onto your USB device, in the same way that you would for an SD card.
and from the image release notes
* Wolfram Mathematica updated to version 11.0.1
* Adobe Flash Player updated to version 220.127.116.11
* Use PARTUUID to support USB boot