router.transitionTo gets aborted only for chat page, but works for the rest of the links like users page

The idea looks reasonable to me. I just tried this on the developer console here on meta:

Discourse.lookup("service:router").transitionTo("chat.index")

and it seems to work ok.

Is chat definitely available to the user you’re testing with?