To get a little more abstract, and answer your rhetorical question, it's difficult because godot is event-oriented. In event-oriented programming, everything you code should happen in response to an event -- no exceptions. The event may be a player input, an animation finishing (or hitting any particular frame), a timer expiring, an object collision, etc. Any time you feel the need to use a "sleep" or "delay" function, it should tell you that you're doing something wrong.
The reasons why this style of programming is useful are fairly complicated, so I won't try to explain them here, but if you work against the engine on this, it will tend to cause you problems.