this will depend on how much your “dialogue” system needs.
if it is just lines of text and animations then you could have those lines of text and animations held by the Actor/Pawn, though if you want easier localization ability (other languages) then the Actor would hold FNames which would correspond to Rows in a DataTable either held by it, or by some manager, which would hold the strings for the Dialogue. the DataTable could also hold the facial animations, and Audio files (if you want facial animations, and Voice Over)
if you want the Dialogue to cover up loading sequences (I believe this is what you mean by ‘is a different level that triggers’) then you can be doing an Asynchronous Level load that starts when the Dialogue starts, which would be done through calls to the Asset Manager.
though you might also be over thinking that games Dialogue system as “different levels” where it could probably be accomplished through Widgets, and a secondary camera in another place in the level where the NPC resides. this way when you interact with the NPC the Widget starts by filling the entire screen with black (to simulate blinking) then swaps to another camera showing the NPC in close up. You can also play with perspective by having the NPC model in this segment be different to the one that is in the level next to the player, or change things around the player, or where the player is when the dialogue ends.
then you go through the Dialogue and on exit blink the screen again, and return to the default camera.
no real need to load a level (which is a bit more intensive then it might sound)
I’ll definitely try out your idea of switching between cameras!
I just have to figure out how will I change the lightning when I switch to the NPC camera, but I’m sure that will be a lot easier than having tons of levels.