Currently there is no easy way to get the subject of the post that was just edited. $data contains the old subject, and $subject is not exposed after it is cleaned.
The hack around this was to implement core.modify_submit_post_data, store the subject in the object, then make use of it in core.submit_post_end, making sure to call truncate_string() again manually.
The easiest solution would be to add $subject to the core.submit_post_end event.
Aside: it would be amazing if an event fires with $sql_data before it is executed, giving an extension the ability to modify the data and add new data fields as needed.