blockmanager: use goroutine to continually broadcast to ensure waiters exit
blockmanager: use goroutine to continually broadcast to ensure waiters exit

In this commit, we fix a bug that would at times render neutrino unable
to cleanly shutdown. If a goroutine that's using either of the condition
variable misses a broadcast, or timing results in the broadcast getting
sent while the goroutine isn't waiting, then it will never exit. To
remedy this, we'll use a goroutine within the Stop() method to
continually signal the waiters until the primary wait group unblocks.

lightninglabs/neutrino