spiflash: Track transaction state

Keep track of whether a given transaction is queued and running.
Otherwise we enter a situation where we will schedule a transaction
multiple times.