A Named Credential can issue a JWT out of the box (see this answer for more details on how it works)
HttpRequest req = new HttpRequest();
Http http = new Http();
HTTPResponse res = http.send(req);
If you need more flexibility with payload, use Auth.JWT class:
The callback URL is the URL that should receive the access/refresh tokens. This will be wherever you deployed your code to, for example https://www.example.com/oauth2/callback. Since you're in control of your own website, the URL is whatever you want it to be.
As per my understanding, we can't have connected app as part of App Launcher. Instead as a workaround, you may have a web-link tab, and that tab you can use in the particular Application.
So, if you want to see the connected app, you can click the tab which will redirect to the connected app page.
PS - It depends on the permission you're having to see the ...