It seems as though WatchOS 2's CoreLocation does not give a CLLocation object containing the speed of the device, whereas iOS's CLLocation object does.
Is there a way to determine the user's speed straight from the watch, without requiring the paired iPhone app to work in the background? If so, how?
And if not, what is the ideal way to access the user's speed through the iPhone app if the watchOS app was launched from the watch's home screen?
CLLocation
course
and speed
may not be available in watchOS 2, but they are available in watchOS 3.
By supporting watchOS 3, you can determine the user's (course and) speed right from the watch.
Refer to the watchOS 2.2 to watchOS 3 API Differences and watchOS 3 CLLocation documentation for more details.