Does the above points (due to browser restrictions) make javascript ideal language for server side non-blocking language?
Browser will only ever run Javascript in one thread (at least per domain, and except for Web Workers).
This is primarily for simplicity; until recently, no-one wrote a threading API for Javascript.
To make the browsers simpler to write (and faster), this thread is the browser UI thread. Therefore, any synchronous work (or a sleep call) in Javascript will freeze the browser.
This is why synchronous operations are heavily discouraged.