Finally dug into this issue this week and have come up with a working solution that does not require an in-place install. The issue is you have a working HFS+ bootable partition with Mojave 10.14 installed. You want to convert to APFS. Booting to a patched installer, running disk utility, unmount the volume to be converted, then choosing convert to APFS from the Edit menu will convert your drive to APFS successfully, but will result in a non-bootable system. This occurs because the Preboot container is not created during a conversion, but is needed for proper booting of the APFS container as a whole. We need to manually create the Preboot volume, copy a few system files over, and re-bless the container for booting.
View attachment 875872
If you want a working Recovery partition, I suggest doing it BEFORE the APFS conversion, I had zero success getting it to work once the drive was converted. What did work for me was using the script here :
https://github.com/rtrouton/create_macos_recovery to create the Recovery partition, then boot to the patched Mojave installer, choose post-install, and ONLY check the box that says "Recovery Partition Patch". Reboot and verify your Recovery partition is working properly. Note - The script above requires a full installer app as an argument for the script, it also downloads a .pkg file with a High Sierra Recovery image. When it actually builds the recovery partition, it puts whatever version is in the installer app you provide, NOT the High Sierra one it downloads. I fed it my 10.14.3 Mojave app and that's what the Recovery partition had when it got done. I simply dragged the script to a terminal window and then dragged the App to the same terminal window and hit enter.
Now for the magic-
1. Boot to your Recovery Partition / Patched USB Installer
2. Open a Terminal Window
3. Check disk numbers - type the following command and press enter
diskutil apfs list
4. Find the APFS Container Reference disk# - We will need this disk#. We will also need the UUID of the main partition, in my case it was disk1s1 (No Specific Role) with a Mount Point of / (easiest way is to highlight and copy with the trackpad then paste later when we need it.) In the picture below the disk# is disk1 and the UUID is 3E57DC70-8876-3F79-9AE0-FEC3D7A49BF3, the volume name is Untitled
View attachment 875879
5. Create the Preboot volume manually - type the following command and press enter
diskutil apfs addVolume disk(Put your correct disk # from above here) apfs Preboot -role B
*The B must be capitalized at the end
6. Mount the Preboot folder so we can copy files to it - type the following command and press enter
diskutil apfs list
Find the disk# for the Preboot volume to mount then type the following command and press enter
diskutil mount disk#(put the correct one from above)
example diskutil mount disk1s2
7. CD into the Preboot volume - type the following command and press enter
cd /Volumes/Preboot
8. Create a folder with the same name as the UUID you copied earlier - type the following command and press enter
mkdir 3E57DC70-8876-3F79-9AE0-FEC3D7A49BF3
9. Copy files from the attached High Sierra Preboot Folder zip file to the newly created folder on the Preboot drive - type the following command and press enter
cp -R '/Volumes/Untitled/High Sierra Preboot Folder/' /Volumes/Preboot/3E57DC70-8876-3F79-9AE0-FEC3D7A49BF3
10. Re-bless the APFS container to allow booting - type the following command and press enter
bless --folder '/Volumes/Untitled/System/Library/CoreServices' --bootefi --verbose
11. Now simply reboot and your APFS drive should be visible and boot normally, you will need to choose it from the Startup Drive preferences pane once it boots to remove the 30 second default boot delay.
Please remember your machine must be able to boot APFS for this to work, install the Dosdude firmware update package to make sure it is up to date if you are unsure. Also the UUID, disk# and Volume name will all be different on your machine, this is just a guide, make sure you change the variables to your specific ones.
Rename High Sierra Preboot Folder001.zip to High Sierra Preboot Folder.zip.001 and
Rename High Sierra Preboot Folder002.zip to High Sierra Preboot Folder.zip.002
The archive was too big to upload here in one piece.