As it turns out my camera ribbon cable was too long. It worked with the long cable with out the screen, but not with it.
I shortened it to the length I actually needed. Used a small file to reveal the contacts then added a backing so it would seat nicely.
I did a fresh install of Kivy and rewrote the code step by step to find the issue. The reason why the Kivy app hanging forever was the line:
Once commented out Kivy was up and running with Flask in parallel.
This is not a direct answer to the Flask blocking Kivy and vice versa issue but is an alternative solution. I gave it a try with process and seems it does the work. Hope it helps.
# -*- coding: utf-8 -*-
# kivy modules first, if not Kivy may cause problems
from kivy.app import App
from kivy.lang import ...