(1) is there a timeout under which we should return back data?
REST connector does not have a separate timeout setting. It allows configuring only a delay between requests for cases when API has a limitation on the number of requests per minute. Such a limitation is usually described in the REST API documentation. But this is about sending requests, not waiting for responses.
(2) is there any specific format of data that we should return so that Skyvia treats it as NORMAL / Done condition?
Data should be returned in a json object format.
(3) How will skyvia know that it has processed 1 Account of Saleforce and now it should pick other records? Currently what it does is that, it keeps on sending us same record again and again.
Your package "Sync to RequestBin" (SF Contact -> REST, the Users table) has a filter by the Email column, this is why the same record is imported every time.
The "Sync Candidate" package (SF Contact -> REST, the Candidate table) has a filter by Id of a contact, and thus, it inserts the same record. If you remove the filters all the records will be processed.
Since you have such a filter in your package, it imports the same record every time. As we see, the record was imported once, and after this exceptions are generated. We have seen such cases when API doesn't send an error message about a duplicate record (like "The name xxx already exists"), and in these cases an exception has occurred too.
Please let us know if you need any further detail.
Currently we don't know the details about your REST API. Yes, you have sent us the metadata for the User object that you created. But we don't know if they are correct for your REST API. Without REST API documentation and a test account for testing the corresponding REST connector, we cannot find out the possible error reasons.