Difference in graceful node shutdown behavior in Amazon Linux 2 and CentOS 8

I would like to know the reason there is a difference in the behavior of Kubernetes’ graceful node shutdown feature across different operating systems.

AWS Cluster information:

Kubernetes version: v1.29
Cloud being used: AWS
Installation method: kubeadm
Host OS: Amazon Linux 2
CNI and version: Calico v.3.28.1
CRI and version: containerd 1.6.35

Bare Metal Cluster information:

Kubernetes version: v1.29
Cloud being used: bare metal
Installation method: kubeadm
Host OS: CentOS 8
CNI and version: Calico v.3.28.1
CRI and version: containerd 1.6.35

According to the Graceful Node Shutdown Feature documentation: [Node Shutdowns | Kubernetes]

It is expected when a node shutdown command is sent, it is supposed to delay the shutdown to allow the pod to terminate properly and allow a preStop hook to activate.

I was testing this feature on separate clusters running on different OS:
OS 1: Amazon Linux 2(AWS)
OS 2: CentOS 8 (bare metal)

Both OS environments have the same Kubernetes cluster setup
Setup:
1) Kubernetes cluster has 1 worker node and 1 master node
2) A simple deployment with postStart and preStop lifecycle hooks are setup
3) Graceful node shutdown feature is set to true in the kubelet configuration file in the worker node
Graceful shutdown period is set:
shutdownGracePeriod: 60s
shutdownGracePeriodCriticalPods: 10s

I have tried to test different commands to simulate node shutdown on the worker nodes:
a. sudo poweroff
b. sudo shutdown
c. sudo systemctl stop kubelet

Below is the result:

OS1 (Amazon Linux 2):

COMMAND                        |    BEHAVIOR

sudo poweroff                  |     preStop hook not executed
sudo shutdown                  |     preStop hook not executed
sudo systemctl stop kubelet    |     preStop hook executed

OS2 (CentOS 8):

COMMAND                        |    BEHAVIOR

sudo poweroff                  |      preStop hook executed
sudo shutdown                  |      preStop hook executed
sudo systemctl stop kubelet    |      preStop hook executed

These results shows that the graceful node shutdown behaves differently in both operating systems.

Is there a definitive cause why there is a behavior difference of the feature on Amazon Linux 2 and CentOS 8?