rx-nostr treats relays and subscriptions as observables but its also setup to handle reconnecting and resubscribing to relays. either way it sounds a lot like what you've built. and yeah, applesauce is only 20% rxjs the rest is helper methods to parse events
I don't know what timezone your in ( I'm in CST ), but as long as your not on the other side of the world. name a day of the week and we can find a time that works best for both of us