同一セッションで複数のアクションを同時に呼べなくなったときの対処法

CakePHPでサイトを構築していると、時間がかかるアクションの実行中に他のアクションが実行できなくなる時があります。
他のページに移動できないだけなら問題ないのですが(むしろ有り難い)、Ajaxで途中経過を別アクション経由で取得したい時等に困ります。
Security.levelをmedium、lowにしている時にこの問題は起き易いのですが、highにしてても起きる時があるので原因は良く判りません。
不可解な現象ですが、セッションをDBに保存するようにしたら解決したのでやり方を書いておきます(CakePHPからDBを使えるようになっていることを前提にしています)。

  1. app/config/core.phpの102行目 「Configure::write('Session.save', 'php');」を「Configure::write('Session.save', 'database');」に変更
  2. app/config/core.phpの110行目 「//Configure::write('Session.table', 'cake_sessions');」を有効にする為に「Configure::write('Session.table', 'cake_sessions');」に変更(「cake_sessions」はセッションを保存する為のテーブル名なので変更しても良い)
  3. app/config/core.phpの116行目 「//Configure::write('Session.database', 'default');」を有効にする為に「Configure::write('Session.database', 'default');」に変更(「default」はapp/config/database.phpでDBの設定を指す変数名。セッションを保存する為に使う設定を指定する)
  4. app/config/sql/sessions.sqlを参考にしてテーブルを作る。dataの型がtextになっているが、セッションデータが大きくなる場合はmediumtextかlongtextにした方が良い