Your question [ Does "Pulse in" function cause delay?] Yes, it is a blocking function.
I think, first thing is to get rid of all delay() functions.
Do you know the distances you are able to read?
Do you know how long (microseconds) the range will take?
I really don't know, but I suspect that would be valuable info to know. Or use a library.