I can’t help you much with the 1st question, but the 2nd question I might.
In most cases, I would say it’s better to use an actor blueprint. The level blueprint is useful for things that will only occur in that level, and aren’t really needed elsewhere in your game. Whatever scripts you have in your level blueprint will ONLY be run on that level. For instance, if your game has more than 1 map to play on, and you set doors to be “open on click” in a level blueprint, then only that level will have properly functioning doors. Any other level will have a different level blueprint, and thus non-functioning doors. That is, unless you copy/paste it for every level blueprint.
What is better for this functionality is to use an actor blueprint. Keep in mind, an actor blueprint is just that - a “blueprint”. It just contains a series of instructions for how to perform some specific action. Think of it like a blueprint for building an automobile. The blueprint describes how the car is built/functions, and the factory produces the actual automobile. A blueprint is not an actual, tangible thing.
So if you have a blueprint named, let’s say, “InteractDoor”. This is an actor that contains a blueprint for user input + a door mesh.
Each time you need to place an interactable door in your level, you would put the InteractDoor actor. Each door is it’s own specific instance. So if you add multiple doors, you will have InteractDoor1, InteractDoor2, InteractDoor3, etc. etc. Every single one of these doors will have the same set of instructions… the same “blueprint”… but they are not the same object. An action on one door will not affect other doors. If you open InteractDoor1, all the other doors will remain unaffected, for instance.
This has many benefits. Let’s say, you want to change the way the door opens/closes. Instead of having to re-write every single door’s open/close instructions, you just edit the blueprint, and now all the doors will have the same updated functionality, and yet they are still distinct from one another.
If you know C++, or another OOP language, think of it like the difference between a class and object. The class is just a description of what kind of data the object holds, just like how a blueprint is just a set of instructions about some functionality for an object in your game.
Hope that hlelps!