Самое удачное название для обсуждаемой штуки - сигнал.

Это некое инкапсулированное значение, у которого есть единственная операция - подать. И в результате вызывается какая-то процедура сразу с каким-то контекстом (который стороне, подающей сигнал, неизвестен, а инкапсулирован прямо в значение переменной-сигнала).

В принципе, никаких препятствий к реализации такой схемы библиотечно нет.

Я делал сигналы системного назначения, где 128-бит-запись хранила адрес модуля (Kernel.Module), смещение процедуры в нём, и дальше - байты контекста (которые, в свою очередь, могут быть номерами более крупных объектов в каких-то глобальных массивах...). Перед активацией сигнала выполняется проверка, что модуль ещё не выгружен.