I managed to boot between ROMs using DualBoot Patcher.I am running OxygenOS as my daily driver and CyanogenMod 12.1 by Grarak
How to do it:
Download and install the latest .apk for DualBoot Patcher
Open the app and go to Patch Zip File and select the cm.zip file you downloaded
At Partition configuration tap Data slot and enter a Data Slot ID (it can be a number or a word)
Tap again to patch the file
Do the same thing with gapps.zip file and supersu.zip (if you want root access)
Go to ROMs and tap the pink FAB button (the pink button in the right corner)
It will tell you that the feature is experimental, tap ok and then tap the pink FAB button and select the patched zip files in THIS ORDER: 1. cm.zip, 2. gapps.zip, 3. supersu.zip
Tap the tick in the top right corner
Let it do it's flashing and then go back to ROMs and then you should see the CM build on the ROMs list alongside the stock OS
Tap on it and it should get a green tick next to the picture
Reboot the phone and then it should boot into CM
To get back to the other OS you will need to get to the folder you downloaded "DualBoot Patcher.apk" and install it. Then go to ROMs and select the other ROM and then reboot.
To change the OS from Recovery Mode you can get "Dual Boot Patcher Utilities" zip from here. Select "Utilities" instead of Android. Flash it and it should bring a menu where you can select which ROM to boot to.
If you have any questions leave a comment :)