Pablo's relay is running strfry I think. And strfry used to not send OK for ephemeral events. It has been updated recently if I'm not mistaken. Khatru definitely sends OK for replaceable events. go-nostr will wait for an OK and time out if it doesn't get one, like in your example, but I don't think it is clear from your video or the things you wrote where is the issue.
nostr:nprofile1qyd8wumn8ghj7urewfsk66ty9enxjct5dfskvtnrdakj7qgmwaehxw309aex2mrp0yh8wetnw3jhymnzw33jucm0d5hszxthwden5te0wfjkccte9ekkcettw5hx7mnvd9hx2tcqyqalp33lewf5vdq847t6te0wvnags0gs0mu72kz8938tn24wlfze66qnzkp this is a demo of the same bug you are experiencing
https://v.nostr.build/87qG.mp4
it is choking on 10002 events in both cases i demonstrate
either the khatru based server side is not sending an ok, or the go-nostr client side is not receiving the ok and the context deadline is expiring
Discussion
I admire you a lot and I need you to share or donate, I live in Brazil, I have a cousin, his dream is to be a football player, he got an opportunity to play on a team, but the passage And everything else costs 10 thousand reais, about 2500 thousand and dollars, if you can help, thank you, if you can't, please share
#m=image%2Fjpeg&dim=864x1920&blurhash=%5BKD9xGj%404nayxuf6WCfQ00j%5B%3FbayIUayogfR%7EqayIUfQt8ayoffPRkayfPfQ%25MfkM%7BayE1ayxuj%5B&x=87937664b86b320d4a9fd619a195e65d8a2850b38f8bc1532754a943a50b53f7
you can see, if you watch the video closely, where it stalls, the top section with the server's logs stops with a last message from eventstore/badger/query.go
you didn't put that log in there, i did, one of the important changes (most of my changes were just rearranging structure so names made sense, and i rewrote the json parsing)
so i can let you know that there is probably another concurrency bug in your eventstore, i've not looked at the other implementations than the badger one but the badger one is clearly getting stuck and this is expiring the websocket context
and yes, it does look like it's on the server side in this case and in this case is triggered by the stream of events that came from primal.net, which seems to order the results by kinds, and it chokes on a stream of 10002s