Previously, some tests were failing because the interval function was not immediately
cleaned up when didDestroy() was called, which kept some references around and prevented
objects from being garbage collected.
I solved this by recognising that there are two ways that a promiseObserve can exit without
success: when the timeout expires, and when the CookieBannerChild is destroyed. These need
to be handled differently, so I gave each case a different AbortController.
Differential Revision: https://phabricator.services.mozilla.com/D227095