I see why now: the redis gem holds the lock for the duration of the `subscribe` block:

https://github.com/redis/redis-rb/blob/7e0ea54693013708c71e7111c525087ee5e6ee19/lib/redis.rb#L1983-L1988

...so it doesn't allow that redis connection to be used for any other commands while it's in that block.