Да, вы можете запускать оболочки в фоновом режиме через обычные системные вызовы, такие как
/path/to/cake/console/cake -app /path/to/app/ <shell> <task>
Самое сложное - запустить один асинхронно из PHP; наилучшим вариантом было бы помещать задания в очередь и периодически запускать оболочку как задание cron, которое затем обрабатывает очередь. Затем вы также можете обновить статус задания в очереди и опросить эту информацию через AJAX.