If your character is moving horizontally only, then instead of "MoveTo On Arrived" event you can simply compare X-coordinate. If Character.X=targetX, then it has arrived.
You can use Tween instead of MoveTo. Tween will change X coordinate, and Sine will change Y.
Another solution is to use a separate invisible sprite for character, with MoveTo, but without the Sine - let's call it CharacterBase. And you will have to set your visible Character sprite position on every tick to CharacterBase + Sine offset.