Hello Kinon,
Unfortunately the r1's RAM is the limitation.
You can get around this issue in your protocol by using global timers.
A global timer can control a port LED as in this example.
In your setup, each of the 8 behavior ports would be linked to a separate global timer.
You can trigger any subset of the timers from a single state using the following syntax:
{'GlobalTimerTrig', '11001010'}
The binary string indicates which timers to trigger.
You'd then cancel the timers as each reward is claimed with:
{'GlobalTimerCancel', N}
where N is the port number.
This example shows something similar to what you'd develop. The first state triggers three timers which begin flashing port LEDs. Poking into port 1 will turn off its flashing LED, and unlike in your case, poking into port 2 would exit the trial. Since you don't need flashing, you'd set 'Duration' to 3600s and 'Loop' to 0.
Please let me know if this works!
Thanks
Josh