Systemd services can specify their own timeout values for startup and shutdown. If it is not specified, the values are set from the systemd configuration files. The default value set in the configuration files is 90 seconds for both startup and shutdown.
From the manual page for systemd.service:
TimeoutStopSec=
This option serves two purposes. First, it configures the time to wait
for each ExecStop= command. If any of them times out, subsequent
ExecStop= commands are skipped and the service will be terminated by
SIGTERM. If no ExecStop= commands are specified, the service gets
the SIGTERM immediately. Second, it configures the time to wait
for the service itself to stop. If it doesn't terminate in the
specified time, it will be forcibly terminated by SIGKILL (see
KillMode= in systemd.kill(5)). Takes a unit-less value in seconds, or
a time span value such as "5min 20s". Pass "infinity" to disable the
timeout logic. Defaults to DefaultTimeoutStopSec= from the manager
configuration file (see systemd-system.conf(5)).
And from the manual page for systemd-system.conf:
DefaultTimeoutStartSec=, DefaultTimeoutStopSec=, DefaultRestartSec=
Configures the default timeouts for starting and stopping of units, as
well as the default time to sleep between automatic restarts of units,
as configured per-unit in TimeoutStartSec=, TimeoutStopSec= and
RestartSec= (for services, see systemd.service(5) for details on the
per-unit settings). Disabled by default, when service with
Type=oneshot is used. For non-service units,
DefaultTimeoutStartSec= sets the default TimeoutSec= value.
DefaultTimeoutStartSec= and DefaultTimeoutStopSec= default to 90s. DefaultRestartSec= defaults to 100ms.