L'ho risolto passando il modulo redis stesso come opzione al costruttore RedisStore.
io.set('store', new RedisStore({redis: redis, redisPub: redisClient, redisSub: redisSubscriber, redisClient: redisClient }));
Ciò era necessario affinché gli oggetti client passassero instanceof RedisClient
testare e non essere reinizializzato senza una password. Apparentemente, quando RedisStore
richiede nuovamente il modulo redis, client redis creati con createClient
metodo sono membri di una nuova classe o qualcosa del genere.
L'ho capito guardando un problema correlato che qualcuno stava riscontrando sul problema n. 808 di socket.io.