Is there a way to prevent SIGKILL after SIGTERM for a daemon\agent during shutdown\restart?
No - this isn't the decision idiom on macOS so your development requirements are conflicting with the system design intention.

Your daemon should be dealing with this and timing and technical ways to do this are built in to MacOS as well as documented fairly well by Apple.

macOS does not shutdown daemons by just sending a SIGKILL it first sends a SIGTERM and then only if the process is still there a SIGKILL. You have some control to delay this by using the disableSuddenTermination method on NSProcessInfo see  https://developer.apple.com/documentation/foundation/nsprocessinfo/1412841-disablesuddentermination?language=objc

Thus your daemon should be shutting down on receipt of a SIGTERM and so the SIGKILL will have no effect.

This was documented in Apple's The Life Cycle of a Daemon

It is also the normal BSD and Linux way of shutdown except that launchd is not involved.