I believe (you should check me first) that the page title is set before module code is executed, as well as keywords; so if your module grabs the response object it should be able to edit it up on its own.
The default login module renames the page title, you might check and see how they do it.
Worst case scenario, - if something later in the ASP.NET stack overwrites your work, you could always create an HTTP module that changes the result object as the last thing that happens before the result document is returned to the client; however I would try to avoid this and do my logic in the module itself, if I could.