After many hours of frustration, I found out that trying to close a window from a secondary thread while the primary thread (the window "owner") is waiting for an event will cause the program to abruptly crash due to a segmentation fault caused by SFML. Now I can only mend the issue by polling events every x milliseconds, but it's just not the same.
I'd figure adding the ability to send a close event to a window wouldn't be that difficult. GLFW has something similar that lets me avoid this very problem (an empty event, though, but still gets the attention of the primary thread). I don't know why it's not implemented, but I'd like to see it.
To clarify further, something along the lines of: window.postCloseEvent();
to cause sf::RenderWindow::waitEvent
to return a sf::Event::Closed
when called.