OK, an answer on this could fill a book, but I'll do my best.
NPV means, as you surely know, the Net Present Value of a series of Cash Flows (from an investment for example).
That means that all cash flows resulting from that investment are discounted to the present day. Why is this done? Because a dollar today is worth more than a dollar tomorrow.
This is enough to answer two of your questions: Is it safe to use a perpetuity? Yes, if you expect your investment to generate cash flows ad eternam. So, if you calculate the NPV of an asset with a certain lifetime (say a bond with a duration of 10 years, or a 5-year lease on a plot of farmland) then obviously you MUST NOT use a perpetuity.
How is risk factored in? Risk is factored into the discount factor. You discount cashflows with the WACC (weighted average cost of capital). Your WACC will be low for low risk investments (typical examples are infrastructure investments like energy networks, roads) and very high for high-risk endeavors like startups or biotech. How risk is factored in mathematically would far exceed the scope of this posed, but it's based on the CAPM (capital asset pricing model).
If the NPV is positive then this tells you that all future positive cash flows from an asset exceed all future negative cash flows from the investment. You discounted future cash-flows in a risk-adequate manner, so your investment is earning you a positive AND risk-adequate Return on your Investment.
The ROI measures the return on the capital that was invested in an asset. While NPV is an absolute number (NPV of 1 mln USD), the ROI is a percentage. So both numbers tell different stories: If the NPV of an investment of 1 billion is 1 million then it is positive, but barely so. An NPV of 1 million on an investment of 1 million is obviously much better. The ROI makes investments of different magnitudes comparable.
Also, the ROI does not factor in risk at that point. So as a standalone indicator, it does not tell you if an investment has a risk-adequate return. Only if the ROI exceeds your risk-adequate rate of return (so-called hurdle rate), THEN you can say whether the investment is worthwhile.
You can use these figures in a number of different ways to tell stories. You can use them to clarify or to obfuscate, depending on what your goal is. Use NPVs to judge the viability of an investment (NPV > 0 = good) use ROI to compare investments, especially of different magnitudes.
I would also add that ROI does not necessarily take into account the time factor, whereas NPV does
Nice and clear explanation!
(edited)