開発の話ではないけどダメなときに500は不親切な気がします。

これが一般ユーザーが引っかかることがありえない、というならこれでもOKだと思いますが。30秒以内の投稿は普通にしちゃいそうです。

エラーを表示したほうがいいのですが、だとすると、最初の予定通りValidatorを使うのが良さそうです。独自バリデータを実装してみてください。