It's easier to make the target page of the form the same as the page that the form is in, "compose" in your example. In compose.tcl add a code block like this
if { [form is_valid compose_email] } {
... code from sending.tcl comes here ...
ad_returnredirect "sent"
}
remove the explicit setting of action/target, and add a simple sent.adp that does nothing except telling the user that the mail has been sent. Among many other things this has the side effect that a reload of the resulting page doesn't send the mail another time.
Examples for the templating form code can be seen in the notes package.
Also you might want to look into ad_form (try /api-doc/proc-view?proc=ad_form on your server), the new way to do this kind of stuff.