В принципе описанный синхронный автомат и есть задача для FPGA. И думаю по деньгам хилая FPGA с 200+ выводами будет дешевле, если научишься загружать её с МК, то почти точно в десяток баксов вписаться можно. Тем более это исключает громадный мультиплексор (там корпусов 28 небось). Ещё подумалось, что можно найти большой многоногий контроллер и сделать то же самое ассемблерной программой укладывающейся в несколько десятков байт: тупо читаем, ANDим, кладём в память и так в цикле для всех портов. И отдельная программа для вычитывания через SPI запускающаяся после остановки основного процесса (по прерыванию с ноги, например). И контроллер будет с flash и дешевле.