First you should read chapter 5 of Architectural Styles and
the Design of Network-based Software Architectures by Roy Thomas Fielding. You will learn at first hand about architectural constraints, elements and views of REST.
The core concern for me now is what exactly should be the Metadata of the response like what other helpful elements I can add apart from 'Response Code' and 'Response Message'.
One architectural element of the REST are Representations. Representations allows the client the interpretation of the response. In case of RESTful HTTP Representations are realized by the MIME-type. For more information see [2].
Other aspects you should consider are URI, supported HTTP methods, URL parameters and message body.
Second concern for me is that should the request be asynchronous or the query or both.
One architectural constraint of REST is the client-server architectural style. Therefore your server should handle concurrent requests to handle more than one client request at a time. If a query, method or function is processed asynchronously doesn't matter for being RESTful.
And the last concern is what technique should I use to make a stateful communication like JWT or Basic Authentication, etc.
JWT and basic authentication are both stateless authentication methods. The term stateless means that a client request contains all information which is needed for the server to process the client request.