Hi David,
Thanks very much for your very helpful and informative response. Adding a call to Finalize() does indeed restore the previous behaviour, i.e., the window now correctly closes and doesn’t hang.
With regard to the X error: I suspect this was from accidentally trying to render from a (non-main) thread, which I have now fixed.
When I get a few minutes, I will provide details on the behaviour of the Cylinder Example.
Kind regards.