Stress testing one of the notification overlay tests by running it 10000
times on repeat has shown that it is susceptible to intermittent
failures due to races between delays and asserts checking the number of
currently progressing notifications and the actual progress update,
which contains a random generation factor.
Replace step sequences checking for notification completion by waiting
and asserting with explicit until steps that don't terminate unless
there are zero progressing notifications.
Visual inspection of taiko gameplay has shown that hitobjects appeared
on screen only when the origin of the hitobject came into the bounds
of the screen, instead of appearing when any visible part of the
hitobject came into the screen bounds.
This behaviour was due to lifetime calculation being based on the origin
of the hitobject and not taking into account the actual object
dimensions. Adjust the lifetime start of the hitobject by subtracting
the time needed to show the part of the hitobject that should already
be visible on screen when the origin comes into frame.