The assert looks like:
if (g_pConfig->RuntimeAsync())
{
// TODO: (async) the index is uint16 and can potentially overflow. This needs to be more robust.
bmtMethod->m_cMaxDeclaredMethods *= 2;
}
This looks like a real reliability issue, We need at least a deterministic throw if we are overflowing.
Also, ideally this would not regress the behavior if we had a class with MAX_INT16/2 methods, which worked and would be broken if runtime async is enabled. This would need a test.