Register a JS-thread-bound uWS App::<false> so has_active_servers()
reports liveness and drain_and_check keeps ticking the loop. Idempotent:
re-registering the same pointer is a no-op (defensive against double
registration in error paths). # Safety: app must be a live *mut App<false>
returned by App::<false>::create, valid until unregister_active_app is
called for it.
Unregister a previously-registered App::<false>. No-op if not present
(defensive against double-close paths). # Safety: app must match a
pointer previously passed to register_active_app.