The most logical way of proceeding would be to wait until we know whether there is a withdrawal agreement, because that withdrawal agreement provides protection for EU citizens and the UK would have to implement it with an implementation Bill. At the moment we do not know whether there will ever be a withdrawal agreement. If there is one, we do not know exactly what the implementation Bill will do. In the case of no deal, this Bill is the only place where you can provide guarantees in primary legislation.
Even if there is a withdrawal agreement in the end, if it were to be adopted in a couple of weeks, we would have a month to discuss the implementation Bill. That Bill will probably be limited in how much detail it would provide on the rights of EU citizens already here. There are some aspects that the withdrawal agreement does not set out in detail, such as the registration procedure. In any case, that would have to come in primary legislation set out here, and not just in the implementation of the withdrawal agreement. If it is not set out now, there is a very big chance that if there is no deal, there will be no guarantees in primary legislation, and even if there is a withdrawal agreement, the implementation Bill does not do that properly, because there has not been enough time to discuss it.