First of all, Positioning service is implemented on top of Legato GNSS service. It is NOT recommend to use Positioning and GNSS API in the same application.
Legato Positioning service is a “high level” service with limited API and information regarding GNSS . That Positioning service was designed to manage several Positioning sources like GNSS, WiFi, sensors, gyro… Currently, Positioning service is based only on GNSS service.
Therefore, I would recommend to use GNSS Legato API (le_gnss functions) instead of “POSITIONING” Legato API (le_pos functions).
About that issue, the le_pos_GetTime function is implemented on top of le_gnss_GetTime function, so I cannot explain that issue and different behavior from those functions.
As GNSS rate is 1Hz, please note that you will have the same time info by calling le_pos_GetTime during that period. Similar behavior expected using le_gnss_GetTime.
As you mentioned that adding the le_gnss_AddPositionHandler seems to have fixed the issue, I had a look on source code and le_gnss_AddPositionHandler must be called to get information from GNSS indeed, but it is done from Positioning Service COMPONENT_INIT, calling gnss_init function. By calling le_pos_AddMovementHandler, it will also call le_gnss_AddPositionHandler.
So my recommendation is to check that le_gnss_AddPositionHandler function is called, or definitively to use GNSS Legato API (le_gnss functions).
Hope it helps !