[sub-mac] fix `semiWindow` overflow in `GetCslWindowEdges()` (#7549)

Prevent possible overflow in semiWindow calculation by converting
it to uint64_t accuracy.
diff --git a/src/core/mac/sub_mac.cpp b/src/core/mac/sub_mac.cpp
index a09a537..c345dc3 100644
--- a/src/core/mac/sub_mac.cpp
+++ b/src/core/mac/sub_mac.cpp
@@ -1198,7 +1198,8 @@
 
     elapsed = curTime - mCslLastSync.GetValue();
 
-    semiWindow = elapsed * (Get<Radio>().GetCslAccuracy() + mCslParentAccuracy) / 1000000;
+    semiWindow = static_cast<uint32_t>(static_cast<uint64_t>(elapsed) *
+                                       (Get<Radio>().GetCslAccuracy() + mCslParentAccuracy) / 1000000);
     semiWindow += mCslParentUncert * kUsPerUncertUnit;
 
     aAhead = (semiWindow + kCslReceiveTimeAhead > semiPeriod) ? semiPeriod : semiWindow + kCslReceiveTimeAhead;