Thank you very much. This gives me a lot more confidence.
I presume that a crdroid/lineage-recovery-based flash won't do the flashing itself any differently than how a TWRP-based flash would do it.
Just for clarity (in case anyone wants to see correct instructions), these are the steps using TWRP:
(1) Take a full nandroid backup of the system using TWRP.
(2) Dirty-flash the crDroid-7.28 ROM via TWRP.
(3) Reboot into the OS and make sure all is well.
(4) Reboot back into TWRP.
(5) Re-flash Magisk 23.0 via TWRP.
(6) Reboot back to the OS.
If not using TWRP, replace step 1 with some method of taking a full backup, such as maybe with SwiftBackup or Migrate, and then just replace the word "TWRP" in steps 2, 4, and 5 with "recovery".
[ NOTE: I posted a question about this here, but then I figured out the answer, so I deleted that post, and this current message supersedes it. ]
I had forgotten that I lose TWRP when flashing crDroid. So the following is the new-and-improved series of steps ...
(1) Take a full nandroid backup of the system using TWRP.
(2) Dirty-flash the crDroid-7.28 ROM ZIP file via TWRP
(3) Reboot into the OS and make sure all is well.
(4) Reboot into recovery. It will now be crDroid's recovery.
(5) Re-flash Magisk 23.0 via sideload.
(6) Reboot back to the OS.
All this worked for me with no problem!
I decided just to keep the crDroid recovery instead of permanently installing TWRP. To perform nandroid backups or restores, I can just do the following ...
(1) Boot into the bootloader.
(2)
fastboot boot [TWRP IMG file]
(3) Perform the nandroid backup or restore.
It turns out that TWRP 3.7.0_11-0 can't do sideload on my device. It kills the adb-to-device connection and then errors out. I have no problem with adb push and adb pull with that version of TWRP ... sideloading is the only problem with it.
The crDroid recovery has no problem sideloading.