答えにならない気もするけど、
> n秒処理を遅延させてからDestroyするみたいなコルーチンで、
this.gameObject.Destroy( this.gameObject, n );
じゃいかんの?

あと、外から消されることもある+消える前に何か処理をしたい、とかなら
public void SelfDestroySet(){}
みたいな自殺予約メソッドを持たせて、外部からDestroyしたい時はそれを使って
想定した挙動で終わらせる方がいいかもね
Destroy(object,n);が実行済みなら外からの自殺は受け付けないとかできるし