widgetはそういういわゆるモーダルダイアログのようなものではないので普通には無理
widget使うならコールバックで頑張るとか、イベントハンドラの連鎖で処理をつなげて自分で状態管理する必要がある
モーダルにしたいのなら、ミニバッファ使う関数か、orgmodeのようにread-char-exclusiveとかで1文字づつ読むしかない