RunOnServer blockiert genauso, weil das Script auf den Rückgabewert des Agenten wartet.
Dir hilft die Eigenschaft "Im Hintergrundthread des Clients ausführen" (englisch: "run in background client thread") weiter... Ein Agent, der so gestartet ist, blockiert den Client nicht.
Du kannst auch hier zusätzlich noch ein RunOnServer und einen zweiten Agenten benutzen, damit der eigentliche AgentenCode lokal am Server läuft und keine Netzwerkaktivitäten das ganze ausbremsen...
EDIT: ACHTUNG !!! Ein Agent, der per "RunOnServer" gestartet wird, kann nicht mehr beendet werden. Der läuft im Server- Thread ausserhalb des AgentenManagers und auch ausserhalb dessen Beschränkungen. Produzierst Du eine Endlosschleife, dann läuft der Agent, bis es zu einem Overflow kommt oder Du alternativ den Server neu startest... Das gilt auch, wenn man den aufrufenden Agenten im Client per Strg + C abbricht..