利用する側は
new Hoge(Action);
new Hoge(Action<T>);
という感じにできたほうが楽じゃありませんか?
それを
new Hoge(Action);
new Hoge<T>(Action<T);
という風に強制させるのはなぜなんでしょう