I have not read through all the responses, so no doubt I will be repeating some things, but hopefully I'll also add some new things.
It's all about event triggers. An event can have 5 different triggers. Action button means you need to walk up to the event and interact with it (press space or enter) in order to trigger it. Player touch means you just have to bump into it or walk onto it (depending on the priority) and it will trigger - you don't need to use the action button. Event touch means you just have to bump into / walk onto it, OR it can bump into / walk onto you, and it will trigger.
The two remaining triggers cause the event commands to run automatically, without any initiation from the player/event touching/interacting. Parallel process means the commands will run in parallel with - at the same time as - other events. It is a "running behind the scenes" things, that will allow the player to do other things, or for other events to run, at the same time. Autorun events "take over" the game and do not allow the player to do other things for the time they are running.
Parallel and autorun events will start running the moment their conditions are met, and will continue running as long as the conditions are met. This means if there ARE no conditions, they will run for the whole time the map is loaded. Under most circumstances, you would not want that to happen. You would want it to run and do some things, and then to stop. You can stop it by using the Erase Event command or by adding a second page with an Action Button trigger and some condition (usually a switch or self switch), and at the end of the autorun/parallel event page, enable the condition that activates the second page.
When to use them? Autorun events are good for cutscenes, when you want the player to just sit back and watch, and not be able to wander around or open the menu. Parallel process events are good for setting things up on the map that you don't want the player to see, when the map is first loaded (playing a certain BGM depending on conditions, setting up or removing weather or screen tints, moving events to certain locations at different parts of the story, etc).
How to turn them off? If you only want the event to run once, ever, even if the player leaves the map and comes back, use a self switch with a second page conditioned by that switch. If you want the event to run every time you enter that map, use Erase Event.
What causes lag? Lag is caused by parallel process events that are not turned off - they continue running, looping by default, for the entire time you are on the map. But it's only events that haven't been well written, or have a lot of processing. Think about what you're trying to do ... if you want to check for a condition every time the player has taken 20 steps, then 20 steps aren't going to happen 60 times every second. It won't even happen once every second. How long would it take for the player to move 20 steps - maybe 5 seconds? That's 300 frames. So put a Wait 300 frames at the end of the event, and it'll wait that long to loop and repeat its process. If you want to monitor for when the player equips a certain weapon, again 60 times a second (once a frame) is overkill. Make it wait 60 frames at the end of the event, then your event commands will only run once per second. Even a 5 frame wait will greatly reduce the effects of lag.
All of the above is talking about events you put on the map. They will run on that map and will stop when you go to another map. However, common events can also be set to autorun or parallel process, and in those cases they must be conditioned by a switch, and will only run while that switch is on. Common events run over all maps, so if you have a parallel process common event that's activated, it will continue running, even while you change maps, until you turn off the switch that triggers it. The above examples, when you're checking something after every X steps or monitoring for a particular weapon to be equipped, would be set up as common events unless you only want to do that on a particular map. That just means you don't have to set up the same event on every map. Common events with an autorun or parallel process trigger also loop by default, and you must turn off the switch in order to stop them from running.
So when you're thinking about creating one, ask yourself if it's something you want to run just on this map, or on all of them (ie - is it going to be a map event or a common event)? Is it something you want to run right at the start of the map or when a certain condition is met, go through the commands once, and then turn off, and do you want it to run again when you leave the map and return (ie - will you use Erase Event to end it, or will you use a new event page and make it active)? Or is it something you want to run continually (ie - no erase event or activating a new page)? When it runs, do you want the player to still be able to do stuff, or do you want to remove control from them for that time (ie - will it be parallel process or autorun)? Then, if it's parallel process and is not going to be turned off, have a good think about how often you want it to happen, and set your wait time at the end of the event accordingly (60 frames is 1 second, so if you want to check twice a second, the wait will be 30 frames). Note - if you have a condition in there somewhere, make sure the Wait is OUTSIDE of the condition - you generally want it to wait on every iteration, not just when the condition is true, or just when it's false - if you only put the wait into the true or false blocks, then you could still have the lag issue.