Is my understanding of Node.js architecture (single-threaded event loop with libuv) correct

I have started working on concurrency in Node.js, but I am unsure if my understanding of Node.js event loop architecture is correct because everybody on the internet has a different view of how Node.js runs code under the hood. After hours of researching, I have come up with this diagram, which represents how I think Node.js executes JavaScript on the server side.
enter image description here

According to me, Node.js comes bundled with Google’s V8 and libuv. V8 converts and executes JavaScript. All tasks that can’t initially be executed by V8 are offloaded to libuv for processing, such as the setTimeout async task.

**
The flow according to me is:**

  1. Write JS in english
  2. V8 interprets source code to machine bytecode line by line
  3. Bytecode is pushed to stack where V8 executes it
  4. Bytecode which cannot be processed initally such as settimeout async tasks are offloaded to libuv which returns a callback after async process is completed
  5. callback is added to taskqueue which should be called a callback queue
  6. event loop check if stack is empty and adds the callback to the stack
  7. V8 executes the callback

Is my diagram and flow correct? I’m certain there are significant gaps in my explanation. Please help me in understanding them.