I understand what you want to achieve and am trying to help you find a way out of this dead-end (in my limited abilities

).
In that case, can't you use requirement like below to avoid the current bug:
[%level%] <= Get_Empire_Tech_Level("Ion Engine") OR [%level%] <= Get_Empire_Tech_Level("Nuclear Engine") + 10
And you have max level for Ion Engine Tech of 10 and requirement for Nuclear Engine Tech like:
Get_Empire_Tech_Level("Ion Engine") >= 10
Of course you still have the name problem (the engine will have the same name...) which will be only display glitch
