Thanks a lot for all the help guys! Everything explained here is really clear. Lagarto, really appreciate everything you took the time to explain (this post should be a sticky! I'm sure a lot of people running into the same issues would find this useful).
So, in short, I should be using my monitor's ICC profile at the OS level (which I already do), I should use a hardware calibration device (gonna look into one right now), and I should use sRGB in my Affinity docs (which I already do).
I just discovered XnView does support ICC profiles, except they're not turned on by default. For those who would like to use them, you just need to go to Tools/Settings.../General/ICC. I set the System ICC profile to use my Dell ICC profile, the RGB profile to sRGB, and the CMYK profile to System profile, and now XnView displays my image properly. So I guess my exported image (which did have the embedded ICC profile option enabled) was always fine, but I got fooled by XnView not remapping the colors properly.
My primary applications for the work I do are video and web applications. I am not sure if web browsers interpret ICC profiles (my search returned ambiguous information on this), but video editors certainly do not. So, I'm thinking I have probably two options here to get the correct colors from exported images into my video editor (or a web browser)...
1. Somehow "bake" the ICC profile onto the colors of my image prior to exporting. I guess I could perform a Convert Format/ICC Profile operation on my document, set the new profile to my Dell profile, and then export the image WITHOUT embedding the ICC profile in it. That should leave me with an image where the actual colors reflect what I see in my display, right? (I am aware that it will look different on other displays... which does complicate things a bit).
2. Apply a LUT on the image inside my video editor that does the same job the ICC profile does. I do not know if there will be a LUT that actually works like the ICC profile. I guess I'll have to experiment.
If you have any ideas around how to deal with this, I'll be quite interested to hear them! I'm guessing the same workflow would apply to images generated for web content.
Thanks again!