タスクシステムのあとから生まれた、関数ポインタとか隠蔽しているC++で
タスクシステムの方を優先して設計するのはナンセンスだと思うよ。

関数ポインタを使って実現したいことは処理の共通化だろうし、それは仮想関数だけじゃなくて
普通に継承元になる側にも関数いれときゃいいし。
継承元のクラスポインタに、派生したいろんなクラスをまとめていれられる。