I admit I haven’t read your whole post, but this sounds suspiciously like the problem also discussed here:
Maybe this helps you already