The 3 runtimes - Mono, CoreCLR, NativeAOT - have separate code that should be moved to a shared space:
ipc_get_process_id_disambiguation_key: Currently, very similar code is shared by the three runtimes separately (mono, CoreCLR, NativeAOT) for ipc_get_process_id_disambiguation_key. We should move the code to the common code so as not to duplicate. 
- ep_rt_os_environment_get_utf16
 
- Emulate PAL like functions for _tcslen (strlen) / _tcsrchr (wcsrchr, strrchr) to make the code easier to read in ep_rt_aot_entrypoint_assembly_name_get_utf8
 
- Consider replacing with a new 
PalInterlockedIncrement64, PalInterlockedDecrement64 for the current Exchange calls on ep_rt_aot_atomic_inc_int64_t  and ep_rt_aot_atomic_dec_int64_t 
- EventPipeActivityControlCode enum (ActivityControlCode in 
CoreCLR and NativeAOT)