The event you attached to is probably the "Submit item for publishing" event, which, as you figured out, ends once the page is sent to the publishing queue.
The event you want to listen to is on the PublishTransaction
object, as mentioned in this responsethis response.
Basically, you should check whenever a PublishTransaction is updated for the transaction status. Once it's complete (i.e. PublishTransactionState.Success
) you will know that publishing has finished successfully.
I might be off the mark here, but why not use something like SI4T instead?