Thank you for the simple reproducer. This makes it really easy to reproduce and understand the problem.
What you're seeing here is a difference between "heading" and "course". The arrow shows the course, the compass mode orients based on heading. In your sample you're never setting the Heading. You can add `UpdateHeading(course)` to also set the heading, but typically you'll do that based on a compass sensor.
I'm guessing what you're really looking to use is the Navigation pan mode, rather than compass mode. which will rotate the map based on your course.
Heading: The direction you're (or rather the device) is facing.
Course: The direction you're moving in.
Think of looking out the side window of a car: You're heading to the side of the direction you're moving in. It's mostly used for figuring out "what am I looking at in 'that' direction", or dealing with cross-wind situations etc.