Without using iast.map (that code is somewhat complicated to take in quickly), a simple IAST-based mapping file shows it is possible:

Code
\documentclass[12pt]{article}
\usepackage{xcolor}
\usepackage{fontspec}
\setmainfont[Script=Devanagari]{Noto Serif Devanagari}
\newfontface\translitd[Mapping=devanagari-to-iastb,Colour=red]{Noto Sans}
\newfontfamily\englishfont{Noto Serif}
\usepackage{polyglossia}
\setdefaultlanguage{hindi}
\setotherlanguages{english}
\usepackage{imakeidx}
\makeindex
\begin{document}
\Large
संयुक्त व्यंजन =
{\normalsize\textenglish{sanyukt vyanjan}}
{\normalsize\textenglish{IAST-based transliteration:}}
{\translitd संयुक्त}\index{{\translitd संयुक्त}}
{\translitd व्यंजन}\index{{\translitd व्यंजन}}
\printindex
\end{document}
The devanagari-to-iastb.map file (so far):
; TECkit mapping for TeX input conventions <-> Unicode characters
LHSName "devanagari-to-iastb" ; IAST+supplemental material
RHSName "UNICODE"
pass(Unicode)
; ligatures from Knuth's original CMR fonts
U+002D U+002D <> U+2013 ; -- -> en dash
U+002D U+002D U+002D <> U+2014 ; --- -> em dash
U+0027 <> U+2019 ; ' -> right single quote
U+0027 U+0027 <> U+201D ; '' -> right double quote
U+0022 > U+201D ; " -> right double quote
U+0060 <> U+2018 ; ` -> left single quote
U+0060 U+0060 <> U+201C ; `` -> left double quote
U+0021 U+0060 <> U+00A1 ; !` -> inverted exclam
U+003F U+0060 <> U+00BF ; ?` -> inverted question
; additions supported in T1 encoding
U+002C U+002C <> U+201E ; ,, -> DOUBLE LOW-9 QUOTATION MARK
U+003C U+003C <> U+00AB ; << -> LEFT POINTING GUILLEMET
U+003E U+003E <> U+00BB ; >> -> RIGHT POINTING GUILLEMET
U+0905 <> U+0061 ; अ a
U+0906 <> U+0101 ; आ ā
U+0907 <> U+0069 ; इ i
U+0908 <> U+012B ; ई ī
U+0909 <> U+0075 ; उ u
U+090A <> U+016B ; ऊ ū
U+090F <> U+0065 ; ए e
U+0910 <> U+0061 U+0069 ; ऐ ai
U+0913 <> U+006F ; ओ o
U+0914 <> U+0061 U+0075 ; औ au
U+090B <> U+1E5B ; ऋ ṛ
U+0960 <> U+1E5D ; ॠ ṝ
U+090C <> U+1E37 ; ऌ ḷ
U+0961 <> U+1E39 ; ॡ ḹ
U+0905 U+0902 <> U+1E43 ; अं ṃ
U+0905 U+0903 <> U+1E25 ; अः ḥ
U+0905 U+0901 <> U+0058 ; अँ X
U+093D <> U+0027 ; ऽ '
U+0915 <> U+006B U+0061 ; क ka
U+0916 <> U+006B U+0068 U+0061 ; ख kha
U+0917 <> U+0067 U+0061 ; ग ga
U+0918 <> U+0067 U+0068 U+0061 ; घ gha
U+0919 <> U+1E45 U+0061 ; ङ ṅa
U+091A <> U+0063 U+0061 ; च ca
U+091B <> U+0063 U+0068 U+0061 ; छ cha
U+091C <> U+006A U+0061 ; ज ja
U+091D <> U+006A U+0068 U+0061 ; झ jha
U+091E <> U+00F1 U+0061 ; ञ ña
U+091F <> U+1E6D U+0061 ; ट ṭa
U+0920 <> U+1E6D U+0068 U+0061 ; ठ ṭha
U+0921 <> U+1E0D U+0061 ; ड ḍa
U+0922 <> U+1E0D U+0068 U+0061 ; ढ ḍha
U+0923 <> U+1E47 U+0061 ; ण ṇa
U+0924 <> U+0074 U+0061 ; त ta
U+0925 <> U+0074 U+0068 U+0061 ; थ tha
U+0926 <> U+0064 U+0061 ; द da
U+0927 <> U+0064 U+0068 U+0061 ; ध dha
U+0928 <> U+006E U+0061 ; न na
U+092A <> U+0070 U+0061 ; प pa
U+092B <> U+0070 U+0068 U+0061 ; फ pha
U+092C <> U+0062 U+0061 ; ब ba
U+092D <> U+0062 U+0068 U+0061 ; भ bha
U+092E <> U+006D U+0061 ; म ma
U+092F <> U+0079 U+0061 ; य ya
U+0930 <> U+0072 U+0061 ; र ra
U+0932 <> U+006C U+0061 ; ल la
U+0935 <> U+0076 U+0061 ; व va
U+0936 <> U+015B U+0061 ; श śa
U+0937 <> U+1E63 U+0061 ; ष ṣa
U+0938 <> U+0073 U+0061 ; स sa
U+0939 <> U+0068 U+0061 ; ह ha
U+0915 U+093C <> U+0071 U+0061 ; क़ qa
U+0916 U+093C <> U+006B U+035F U+0068 ; ख़ k͟ha
U+0917 U+093C <> U+0121 U+0061 ; ग़ ġa
U+091C U+093C <> U+007A U+0061 ; ज़ za
U+092B U+093C <> U+0066 U+0061 ; फ़ fa
U+0921 U+093C <> U+1E5B U+0061 ; ड़ ṛa
U+0922 U+093C <> U+1E5B U+0068 U+0061 ; ढ़ ṛha
;=============================
U+0902 <> U+006E U+0323 ; n.
;=============================
; u
U+092F U+0941 <> U+0079 U+0075 ; yu
;=============================
; no a
; U+094D
U+0915 U+094D <> U+006B ; k
U+0935 U+094D <> U+0076 ; v
Looks like IAST was done for the pen-and-paper days, when the human filled in the obvious transliterations.
It's more efficient to let the computer do it all, so I'll fill in the rest of the combinations over the next week or so. It makes it much easier to maintain as well (e.g., it just becomes a copy-paste in the end).
Also, from a very quick glance, I think IAST may have some gaps.
Edited to add:
Map file creation proceeding quite well. It can handle the first sentence of the conjunct consonants article on Wikipedia. A transliteration convention: The word-final -a is not often pronounced nowadays, so a bit like the word-final -e in English: silent.

I'll post the map file as a separate answer, for ease of use from its size, and continue updating it over the next few days.
Mapping file can now handle the test sentence:

Final update: Mapping file is complete enough to be practical for use, and done in plain style for ease of update/changes if required. IAST is lossless transliteration. What I originally presumed were 'gaps' were just modern letters, after IAST was developed, I'm guessing - I have added those in as well, following the IAST schema, including adding both series of the nuqta consonants (they have their own unicode slots, as well as the combinations of consonant + nuqta, like Wikipedia uses (and probably other pages)).
Addendum:
The reverse direction, from Roman to Devanagari, is just the mapping file's left-hand-side and right-hand side swapped over.
Since I don't have a IAST keyboard, with all the dots and macrons and so on, I made a slightly modified reverse-IAST using plain keyboard keys (long a is input as aa, e.g.), with the outcome in blue:

Now, all Devanagari system fonts become available.
Cool 
And adding in the Vedic material is equally straightforward.
The result of having a good teacher as an example is that the lesson becomes smoother (and also enjoyable). And this site is a good teacher.
\skt{}the braces do nothing (they do not harm either). If your document is mainly in the main font, you can usesetmainfont{Sanskrit2003}. Deva may be used for command names - this may save switching keyboards many times. MWE: ```\documentclass[12pt]{article}\usepackage{fontspec} \setmainfont{Sanskrit2003}\newfontfamily\ट{Sanskrit2003}[Mapping=deva-to-iast] \begin{document} रामो राजमणि सदा विजयते रामं रमेशं भजे।{\ट रामो राजमणि सदा विजयते रामं रमेशं भजे।} \end{document}```
– Cicada Nov 02 '19 at 04:59dev2font feature. This may or may not have an effect, depending on the shaping engine used by your font renderer. – Cicada Nov 02 '19 at 05:00\newfontfamily\textskt{Sanskrit2003}\newfontfamily\textiast[Mapping=deva-to-iast]{Sanskrit2003}
– Hrishikesh Dec 30 '19 at 18:34\newcommand{\skt}[1]{{\textskt{#1}}}and\newcommand{\iast}[1]{{\textiast{#1}}}to get around that and make\iast{}work as expected.\textit{}is somewhat like\newcommand\textit[1]{{\itshape{#1}}}. The font switch is then restricted to a group. – Cicada Dec 31 '19 at 10:32