fix(subscription): Fix handling of Close()

Do not call sysconn.Close outside of dbus.go. The behavior is surprising
and depending on how the error happened sysconn could already be closed,
resulting in a double-close panic.

Gracefully exit the signal goroutine if its channel has been closed.