The very mount command itself that you are running to set the drive as read-only is read from the CF drive thus making the drive ‘busy’. Plus your shell/command line prompt is most likely sitting in a directory on the very drive you want to unmount keeping the drive ‘busy’.
What you’ll need to do is create a RAM drive and copy the mount command (and any other commands that you might need to accomplish the read-only mount) into the RAM drive. Then ‘cd’ to your RAM drive and run the commands directly from the RAM drive with a ./ prefix so that it doesn’t path to the CF card.
If you still can’t unmount due to the resource being busy you can always copy devb-eide + mount command + other commands you might need into the RAM drive. Then slay devb-eide then restart devb-eide + mount as read-only. I don’t recommend this approach because it’s heavy handed compared to getting unmount to work but I’ve used it before successfully.
What I would suggest you do is mount the partition as read-only in your boot image. You indicated that you may have need to mount as writeable at some point if you need to update a binary so you’ll need to do the RAM drive exercise anyway but just for making the partition writeable instead of read-only.
Just be aware that programs like the system logger require write capabilites to the CF card (or a RAM drive) if you plan to run the system logger.