For the triggerable you can read here in the docs and it is explained How to use triggerable in the forum. It could be the right approach for you.
It really depends on how you are doing the report generation. If you are just spinning up a new thread immediately and continue with the service task, then in theory there is a scenario where the report generation would finish before the Flowable transaction is committed and thus sending the event will not work since it is not available yet in the database. What I would do is to make sure that the report generation happens after the Flowable Transaction is committed. The pattern you are proposing is the same as the triggerable, the only thing is that the triggerable is a bit more explicit and it is easier to model.
I would also think about what can happen if your report generation fails, if the system goes down during that.
Cheers,
Filip