Разбить на несколько контрактов и дальше подключать как библиотеки по сути.
Подумать, можно ли часть логики вынести за пределы блокчейна, сохраняя лишь результат.
Как предельный вариант - перейти с эфира на другой блокчейн, в эфире хранить "фронтэнд".
Подождать - в планах есть предложения по оптимизации, в том числе разбиение выполнения контракта на несколько стадий (в разных блоках). Или схимичить и делать это самостоятельно.