So, my question is: will doing all tasks using scripts make it easier and faster if done correctly, or is knowledge of JS coding needed only in rare cases when performing complicated tasks? Could it be that I'm getting something wrong?
Yes, there are a few things you got wrong. But to understand them you'll need some background info.
There is a rather complex construct in the engine that could be called the "main game loop". This main game loop handles all timing and coordination between all parts of the engine and your game.
The entire event system has been programmed with safeguards and access ways that make entering objects into that loop easy to handle.
But to access that directly by javascript is extremely complex and full of problems. You already mentioned the timing problems when adding messages, but other cases are even worse. For example there is no direct javascript equivalent for the event command "call common event" - the javascript equivalent is called "reserve common event" and you cannot "time" that command - the common event will be executed when the game loop determines it has time to execute that, which might or might not be immediatly or a lot of cycles later.
The event system was especially designed to make the time handling of the game loop easy, and most of the experienced programmers prefer to use the events for that to spare them the headache of having to check and program all safeguards around the game loop themselves for every tiny message or access.
On the other hand however, the event commands are extremely strict. The command windows have only very limited data entry options, and several of the good options are still missing despite the community having asked for them over and over.
Just as an example: try to add a random equipment to the party. the event command can only be set to a specific item, there is no way to use a variable to calculate the ID of an item to be given.
To do that in an easy way, you'll need the javascript equivalent of the command, where you can easily replace the fixed ID with a calculated number.
Limitations like that are why most developers sooner or later begin to learn the basics of javascript to support advanced eventing.
But I know of no one who ever proposed to completely replace the event system with javascript.
Back in VXAce there had been exactly ONE try to make a framework for creating events by RGSS3 (the Ruby variant used as a script language in VXA), but no one really used that script after realising how complex and difficult that is, and even Tsukihime had abandoned that idea and never revisited it later in MV.
Instead you always get the "clone"-type systems where an event is only copied instead of constructed, because it is much easier to create the event in the editor than to create the dataobject of the event in a scripting language.
Basically the good developers always combine both events and script, they never try to completely replace events with scripts for a lot of reasons (mostly because its less work and easier bughunting)