The application will be kept alive for at least as long as it has any windows associated with it (see [gio.application.Application.hold] for a way to keep it alive without windows).
Normally, the connection between the application and the window will remain until the window is destroyed, but you can explicitly remove it by setting the :application property to null.