自分も2回入力ダッシュを組んでるけど特に問題なく作れた
最適解じゃないかもだけど右方向だけを解説するよ

・移動の基本
停止1→ 右方向が押されている→ 右方向へ移動
停止1→ 右方向が離されている→ 停止2

・ダッシュへの流れ
停止2→ n秒間経過して右方向が離されている→ 停止1
停止2→ n秒間経過前に右方向が押された瞬間 AND 押されている→ 右方向へダッシュ

停止1は普通に止まっている状態
停止2はダッシュ入力受付のための専用の停止モーション
n秒間は右方向入力時の2回目の入力までの受付時間

このままだと左右の同時入力などでバグが発生するので
各方向ごとに入力操作の優先順位を設定しておく必要がある

とりま参考までに