Joel,
Please take a look at /curriculum/lib/element-ave.tcl ("ave" means add-view-edit ... http://cvs.openacs.org/cvs/openacs-4/packages/curriculum/lib/element-ave.adp). It does more or less exactly what you want, I think.
If you have questions on it, I'll try to answer them.
The key issue here is that your "new" proc/function must be provided with the key (e.g, element_id) that ad_form allocated (at your script level) instead of not being provided any, thus having to fetch it itself. The script will need to know the key to be able to redirect to the recently created object's page ...
/Ola