My clients can start a task from frontend (such as create PDF report), and the process pretty much like this:

In this architecture frontend need to create ajax call to check if PDF report is ready.
I want to update to web socket to make process more efficient.
- Should i use create another flask project or adding websocket support to old one? (adding another endpoint like api.my.domain/ws/create-report)
- How can i emit an event to client that job has been completed?
Ps: On a daily basis, each client generates 1000 tasks per day. On average, each task only takes 45 seconds to finish.
I would use the simplest solution - the ajax request (polling).
You know an average delay (45 seconds, you can use something like 50 seconds delay or improve it look at probability function also you can use a smarter delays formula, for example, 50 sec, 20 sec, 20 sec...). It is a small additional load on your server. And you do not have to build more complicated architecture, which may not provide any significant benefits for users.