> But I'm not sure if we need to load the script synchronously. defer preserves the script order, so unless there is a script in the code that will use the events and is synchronous, I believe we should be fine with putting this script on top of the script pile with defer.

The problem is that the main script file loaded at the end of the body does not use defer, so it loads before the performance script can bind its events.