DestroyObject should certainly end the heartbeat, as well as all other events, though double-checking shouldn't be too hard. Keep in mind that only those creatures that have specifically had InitHeartbeat set on them will have a heartbeat to end (such as party members).
Thanks for the reply. I'm using a heartbeat in my Bag of Beans add-in to control the duration of the conjured creature. I'm doing a cleanup pass to prepare for release and noticed I wasn't calling EndHeartbeat() as it destroyed itself.
I just wanted to verify that I wasn't polluting the game with a slowly growing population of heartbeat timers that don't do anything.