`timedatectl` uses the `org.freedesktop.timedate1` D-Bus interface to query the current state. It outputs the results from that, and the specific meaning can vary.
The results typically reflect the status returned by `adjtimex`. If you’re using `timedated`, the clock is considered synchronised if `adjtimex` succeeds and the reported time error is less than 16 seconds. If you’re using `timedatex`, the clock is considered synchronised if `adjtimex` succeeds and the reported time error is less than 10 seconds.
How often the time is checked depends on the service you’re using to manage your time (if any).
The kernel has a flag to indicate that time is not synchronised (`STA_UNSYNC`), but that is also tied to the “11-minute hardware synchronisation” mechanism. It is therefore not uncommon to have systems with synchronised clocks but `STA_UNSYNC` set (see the comments in the code linked above).