Level Sequencer's OnFinished called after sequence reset

Hi all,
Version: 4.17.2, Launcher

This was originally a different bug report and then I realized it’s much simpler and more sinister than I thought. Create a Level Sequence and animate an actor who is already in the level by keying their transform and moving them.

Issue 1: LevelSequenceActor does not respect the “Restore State” flag. Using the default settings (Don't Loop, no Restore State) when calling “Play” on the sequence from code the sequence will play and then all animated objects in the sequence will jump back to their original position. Enabling Restore State gives the same effect.

Issue 2: OnFinished is called after the state has been restored. This means you cannot get the position of an animated object when the sequence finishes.

I made a simple test case which prints out the position of the key’d object before the sequence starts, when the OnPlay callback gets fired, and again in OnFinished/OnStop. The first one prints out the objects current position in the level (which may be different than the first keyed position if you moved the object and didn’t update the sequence). The second one prints out the first keyed position. This behavior is expected and correct. However, in OnFinished/OnStop, the it prints out the same location as the first one! So it’s restoring the state to how it was before the sequence started, but it’s calling OnFinished after that.

[A BlueprintUE Graph to test is located here][1], just make sure you add references to the actor moved by the sequence and the level sequence. This has not been tested with objects spawned via Sequencer.

Graph:

This is untested, but I think each property track on the Sequencer needs to be marked to hold state at the end. It doesn’t seem to care about the checkbox in the Level Script Actor at all. Very weird.