В общем, пришлось выкинуть пока наследование в доктрине, ну или альтернатива - писать везде через ручные SQL запросы, но тогда доктрину вообще можно выкинуть.
Потестил как получилось:
Количество вызываемых полей, через SELECT очень сильно влияет на скорость запроса, даже сильнее чем JOIN и не важно, что там 90% полей пустые.
Когда нужно вызвать допустим всего 5 полей определённой таблицы, доктрина вызывает 20 и более полей (сотнями может исчисляться), т.к автоматом JOIN всех детей, и увеличивая тем самым задержку с 30мс до 100мс (Docker под Windows) и это только при 3-5 наследоваемых таблицах, а планировалось десятки.
Если выбрать только 5 полей, но сделать JOIN на все таблицы, как делает Доктрина, то задержка будет всего 50мс, против эталонного 30мс.
П.С Возможно влияние JOIN будет заметно, при большем количестве таблиц, но при мини тесте поля сильнее повлияли.