Added basic UI for Nestable Async Events

This CL adds basic UI support for nestable async events.
Still need to find out whether the UI looks okay. But right
now it looks like the picture in the design doc below.

Design Doc:
https://docs.google.com/document/d/1Z2uqj59UEts5IiXX78mkdU4kd6e7kE3JUKPoDK97bVs/edit?usp=sharing
Should this be a warning? Or, because we're async, we don't know if we just haven't received the proper END event yet?

It seems strange to set the wrong event as the end state for each of the previous BEGIN events. This is going to throw off the CPU timings and things as we'll be using a fake end time.